Предполагая, что ProductId является столбцом INT, в чем разница между записью 3 и N'3 '?
Они оба работают нормально.
INSERT INTO dbo.Products (ProductId, Name) VALUES (3,'Product3') INSERT INTO dbo.Products (ProductId, Name) VALUES (N'3','Product3')
N'3' - это тип nvarchar, где 3 - это int. Если вы используете nvarchar, вы запрашиваете парсер выполнить неявное преобразование. В этом случае он работает нормально, но в других вы можете столкнуться с проблемами приведения.
N'3'
nvarchar
3
int
Когда SQL Server обнаруживает N'', он будет обрабатывать строку как NVARCHAR вместо VARCHAR.NVARCHAR поля имеют юникод.
N''
NVARCHAR
VARCHAR
Причина, по которой N'3' по-прежнему работает для вас, заключается в том, что он преобразует его в NVARCHAR, а затем выполняет неявное преобразование в INT.
INT