これは本当に簡単です。SQL SERVER 2008
値を文字列に自動変換しますか?
これSelect * from Staff Where Division = 5
を試してみました挿入しようとすると、うまくいきます。
5 を 5 に変更すると、エラーが発生します。Invalid column name five
.
部門はNVARCHAR
です。5 を一重引用符で囲むべきではありませんか?
これは本当に簡単です。SQL SERVER 2008
値を文字列に自動変換しますか?
これSelect * from Staff Where Division = 5
を試してみました挿入しようとすると、うまくいきます。
5 を 5 に変更すると、エラーが発生します。Invalid column name five
.
部門はNVARCHAR
です。5 を一重引用符で囲むべきではありませんか?
はい、SQLServerはintからnvarcharへの暗黙的な変換を行います。また、nvarcharをint(およびその他の数値型)に暗黙的に変換することもできます。
詳細については、http://msdn.microsoft.com/en-us/library/ms191530.aspxをご覧ください。
暗黙の変換が行われる場合が多くあります。例えば:
EXEC sp_who2 active;
文字列として区切る必要はありませんactive
か?はい、しかし構文は寛容です。
私の提案:常にデータ型を正しく区切り、例外を無視します。彼らが包括的に修正される可能性はほとんどありません。