vsdbcmd.exe создает инструкции для удаления без имени ограничения

При создании сценария diff между двумя dbschema с помощью vsdbcmd.exe я иногда получаю неожиданный вывод, содержащий некоторое ограничение на удаление без имени ограничения:

GO
PRINT N'Dropping On column: ColumnName ...';    

GO
ALTER TABLE TableName DROP CONSTRAINT ;

В нашей схеме этот столбец имеет ограничение по умолчанию со автоматически сгенерированным именем. Я ожидал, что vsdbcmd.exe сгенерирует корректный оператор ALTER TABLE sql, как указано в библиотеке msdn:

ALTER TABLE [имя_базы_данных [имя_схемы] . | имя_схемы ] table_name DROP { [ CONSTRAINT ] ограничение_имя | COLUMN column_name }

Есть ли у вас какие-либо идеи о том, что может помешать vsdbcmd.exe создать действительный оператор SQL?

1 ответ

Решение

Эта проблема возникает только тогда, когда ограничение имеет сгенерированное имя. Явно названные ограничения не затрагиваются. Следовательно, это решение состоит в том, чтобы назвать каждое ограничение.

Другие вопросы по тегам