10 февраля 2012 г.

Параметр QUOTED_IDENTIFIER в sqlcmd по умолчанию выключен


SET QUOTED_IDENTIFIER { ON | OFF } регулирует возможность использования ключевых слов  или запрещенных символов в именах объектов базы данных. Например следующий скрип будет успешно выполнен в SQL Server Management Studio, так как в SSMS параметр QUOTED_IDENTIFIER включен по умолчанию:
create table "create" ("insert" int)
go
drop table "create"
go 
Этот же скрипт выполнится с ошибкой синтаксиса, если параметр QUOTED_IDENTIFIER устнановить в значение OFF.

Также QUOTED_IDENTIFIER должен быть включен при создании/изменении отфильтрованных индексов, индексов для вычисляемых столбцов и индексированных представлений. Это следует учесть если база, имеющая подобные объекты, создается скриптами, выполняемыми с помощью утилиты SQLCMD. В SQLCMD параметр QUOTED_IDENTIFIER по умолчанию выключен, для переключения это параметра в значение ON используется аргумент -I.

Например:
sqlcmd -i test.sql -I

Комментариев нет:

Отправить комментарий