在生成的数据库模式脚本中包含 CHECK CONSTRAINT & GO 的目的是什么

What is the purpose of including CHECK CONSTRAINT & GO in the generated database schema script

我在 SDL Server 2008 R2 上工作,我在其中生成了一个仅模式的数据库脚本。生成的脚本如下:

ALTER TABLE [dbo].[ConsoleServer]  WITH CHECK ADD  CONSTRAINT [FK_ConsoleServer_RackUnits] FOREIGN KEY([RackUnitID])
REFERENCES [dbo].[RackUnits] ([UnitID])
GO
ALTER TABLE [dbo].[ConsoleServer] CHECK CONSTRAINT [FK_ConsoleServer_RackUnits]

我有这两个问题:-

  1. ALTER TABLE ... CHECK CONSTRAINT ... 行启用约束。您可以添加约束并将其禁用(例如,在清理数据时)。查看更多 here

  2. GO 是批处理分隔符,只有 SSMS 可以识别。一些语句,例如 CREATE PROCEDURE... 要求它是批处理中的第一个语句。您可以在新文件中键入它,或使用 GO 终止前一批。不要通过 OLEDB 或 ADO.NET 从您的应用程序发送 GO