SQLServer2008は、2005と比べて型指定にうるさい。
SQLServer2008を使うと、SQLServer2005まえはOKだったクエリが通らないことがあります。
最近経験したのは、intの項目に「'」(シングルクォート)で囲んだ数値をINSERTしようとしたところエラーになりました。数字が文字列と解釈されて、整数型の項目に入れられなかったんですね。
SQLServerは比較的ユーザーの指定の甘さを解決するような挙動をしてくれるのですが、さいきんは大規模開発にも使われるようになってきたのでその曖昧さを排除しているのかもしれません。
その方が開発するときに原因不明のエラーが減って良いとは思うのですが、97から2000、2000から2005の時はあまりそう言うのはなかったように記憶しているので、2008では少し気をつけて確認しないといけません。
そんなわけで、既存システムのDB変更時には十分ご注意を。
今日は省エネエントリでした。