Ограничения, созданные как NO CHECK, создаются как CHECK после публикации dacpac. - PullRequest
0 голосов
/ 07 сентября 2018

Я публиковал свое решение dacpac в базе данных. После публикации я вижу, что ограничения, которые были удалены и заново созданы в процессе публикации, созданы как ограничения CHECK.

При поиске в Google по поводу проблемы я обнаружил, что существует свойство с именем « Проверка скрипта для новых ограничений », которое отвечает за включение всех новых ограничений в CHECK. Поэтому я попытался установить для этого свойства значение false и опубликовал снова. Теперь проблема в том, что все ограничения созданы как NOCHECK.

Любая помощь о том, как я могу сохранить состояние CHECK или NOCHECK этих ограничений.? Кроме того, почему решение Visual Studio DACPAC создает все ограничения как NOCHECK и в конце устанавливает для них значение CHECK .?

Определение ограничения в базе данных перед публикацией

ALTER TABLE [dbo].[table_name]  WITH NOCHECK ADD  CONSTRAINT [ck_table_name_ssn] CHECK  (([ssn] is null or [ssn] like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
GO

ALTER TABLE [dbo].[table_name] CHECK CONSTRAINT [ck_table_name_ssn]
GO

Определение ограничения в базе данных после публикации

ALTER TABLE [dbo].[table_name]  WITH CHECK ADD  CONSTRAINT [ck_table_name_ssn] CHECK  (([ssn] is null or [ssn] like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
GO

ALTER TABLE [dbo].[table_name] CHECK CONSTRAINT [ck_table_name_ssn]
GO
...