読者です 読者をやめる 読者になる 読者になる

SQL Server では 'd' も 指数表記のようです。

注意事項:公式なドキュメントは見つけれていません。  

select ISNUMERIC('10d2') -- 1 を返す

これの実行結果が 1 を返します。
ISNUMERIC (Transact-SQL)   は数値に変換出来るときは 1、そうでない時は 0 を返します。
注意として数字以外の一部の文字に対しても 1 を返すことがあるようで、'+', '-', '$' 等の通貨記号がこれに該当するそうです。
通貨記号は money および smallmoney (Transact-SQL) に載っています。
しかし 'd' はありませんでした。

探してみると2004年の内容ですがこんなのを見つけました。 Use IsNumeric() to evalute Ssring that starts with 0D or 0E

ここに ISNUMERIC は int/float/money/decimal のどれかに変換出来るなら 1 を返すような事が書かれています。
ということで cast してみました。

select 
  CAST('10d2' as float) -- 1000 を返す
  , CAST('10d21' as float) -- 1E+22 を返す

float 以外に cast するとエラーになりましたが、float には 変換出来ました。
動きから指数表記と同じように見受けられます。

指数表記については、 データ型の変換 (データベース エンジン)SQL Server 2008 R2 のバージョンに記載されています。*1
ここでは、小文字の e または 大文字の E が指数表記として使えるように書かれています。
'd' や 'D' については載っていません。
英語版の方も確認しましたがやはり書かれていませんでした。

幾つかの言語(VBS 等) では 'D' も指数表記として使えるような記事が見つかりましたが SQL ServerT-SQL でも使えるようですね。

というわけで、ISNUMERIC 使って数値かどうか判定する時は、通貨記号だけで無く指数表記('E'/'D') にも気を付けて下さい。

*1:最新2014のバージョンでは指数について載っていなかった