投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/10/9 23:00:41
> EEと略すと複数のEditionが対象になってしまいますね。
で、実際のエディションは?

> 照合順序の指定はしていないので
照合順序の指定は、開発段階から意識しておいた方が良いですよ。
SQL Server のバージョンによっては、幾つかの照合順序バグの存在も知られていますし。
http://sqljp.com/yoshihirokawabata/archive/2005/10/04/14414.aspx

> (2行目と3行目は、同じですよね)
すみません。投稿後に気付いたのですが、修正するまでも無いと思って放置していました。
(BIN や BIN2 など、幾つかの照合順序を列挙するつもりで、編集し損ねていました)

> char(10)をvarchar(10)等の可変長に変えたところ
あぁ!そういえば文字列指定時の型に関して注意点がある事を思い出しました。

今回の場合、@key1 パラメータの型は何に設定されていますか?
(パラメータの Size を 0 か -1 にすれば解決するかもしれません)


DbType = 
    AnsiStringFixedLength
    StringFixedLength
    AnsiString
    String
    その他

Size =
    10
    0
    -1
    その他


たとえば、Size = 10 な文字列系パラメータにしておいた場合、
"%" という文字列は "%         " に変換されて渡される可能性があります。

この場合、『末尾に 9 文字以上の空白を含むデータ』の意味になるため、
「          」や「A         」には一致するのですが
「1234567890」や「XYZ       」には一致しない可能性があります。