ProductIdがINT列であると仮定すると、3とN'3 'の間の違いは何ですか?データベース - TSQL(Sql Server 2008)の3とN'3の違い
両方とも正常です。
INSERT INTO dbo.Products (ProductId, Name) VALUES (3,'Product3')
INSERT INTO dbo.Products (ProductId, Name) VALUES (N'3','Product3')
ProductIdがINT列であると仮定すると、3とN'3 'の間の違いは何ですか?データベース - TSQL(Sql Server 2008)の3とN'3の違い
両方とも正常です。
INSERT INTO dbo.Products (ProductId, Name) VALUES (3,'Product3')
INSERT INTO dbo.Products (ProductId, Name) VALUES (N'3','Product3')
N'3'
3
がint
nvarchar
あるタイプです。 nvarchar
を使用している場合は、パーサに暗黙的な変換を要求しています。この場合は正常に動作しますが、キャスティングの問題に遭遇する可能性があります。
SQL ServerがN''
を検出すると、文字列はVARCHAR
の代わりにNVARCHAR
として処理されます。 NVARCHAR
フィールドはユニコードです。
理由がN'3'
の場合は、NVARCHAR
に変換してからINT
に暗黙的に変換しているためです。
+1:ビンゴ。パラメータが送信されるためにnvarcharが多く使用されます。もちろん、問題はそれに収まるものがあることです。 –