Допустим, у меня есть таблица с полем varchar. Если я сделаю вставку следующим образом:
INSERT MyTable
SELECT N'the string goes here'
Есть ли принципиальная разница между этим и:
INSERT MyTable
SELECT 'the string goes here'
Насколько я понимаю, у вас возникнут проблемы только в том случае, если строка содержит символ Unicode, а целевой столбец не соответствует Unicode. Кроме этого, SQL отлично справляется с этим и преобразует строку с N''
в поле varchar (в основном игнорирует N
).
У меня сложилось впечатление, что N
перед строками является хорошей практикой, но я не могу найти никакого обсуждения этого, которое я бы считал окончательным.
WHERE SomeCol = '1'
, как если бы это был столбецvarchar
, хотя на самом деле это столбецint
. Это может работать, но это не делает его менее неправильным, и это может привести к незначительным ошибкам, связанным с сопоставлением, в будущем, когда сценарий будет изменен. Сгенерированный код явно не соответствует таким высоким стандартам качества, как написанный код; то же самое, как правило, верно для любого генератора кода, попробуйте взглянуть на конструктор кода программной части Windows Form. 28.04.2010