Sql server TSQL:NOCHECK创建表内的外键
我想在CREATETABLE语句中添加外键约束。但是,我还想包括NOCHECK属性。这可以在CREATETABLE语句中一次性完成吗?我似乎找不到一个好的例子 比如说:Sql server TSQL:NOCHECK创建表内的外键,sql-server,tsql,Sql Server,Tsql,我想在CREATETABLE语句中添加外键约束。但是,我还想包括NOCHECK属性。这可以在CREATETABLE语句中一次性完成吗?我似乎找不到一个好的例子 比如说: CREATE TABLE dbo.SampleTable ( [ID] INT IDENTITY (1,1) NOT NULL, [ParentSampleTableID] INT NOT NULL, <NOCHECK> CONSTRAINT [FK_SampleTable_ParentSample
CREATE TABLE dbo.SampleTable (
[ID] INT IDENTITY (1,1) NOT NULL,
[ParentSampleTableID] INT NOT NULL,
<NOCHECK> CONSTRAINT [FK_SampleTable_ParentSampleTable] FOREIGN KEY (ParentSampleTableID) REFERENCES dbo.ParentSampleTable ([ID])
)
创建表dbo.SampleTable(
[ID]整数标识(1,1)不为空,
[ParentSampleTableID]INT不为NULL,
约束[FK\U SampleTable\U ParentSampleTable]外键(ParentSampleTableID)引用dbo.ParentSampleTable([ID])
)
有什么想法吗?您不能在表定义级别添加约束和禁用 你有两个选择 不要在表定义级别添加约束,以后再添加约束,并使用NOCHECK禁用约束。
CREATE TABLE dbo.SampleTable (
[ID] INT IDENTITY (1,1) NOT NULL,
[ParentSampleTableID] INT NOT NULL)
GO
ALTER TABLE dbo.SampleTable
WITH NOCHECK ADD CONSTRAINT [FK_SampleTable_ParentSampleTable]
FOREIGN KEY (ParentSampleTableID) REFERENCES dbo.ParentSampleTable ([ID])
GO
在表定义级别添加约束,然后将其禁用。
CREATE TABLE dbo.SampleTable (
[ID] INT IDENTITY (1,1) NOT NULL,
[ParentSampleTableID] INT NOT NULL,
CONSTRAINT [FK_SampleTable_ParentSampleTable]
FOREIGN KEY (ParentSampleTableID) REFERENCES dbo.ParentSampleTable ([ID])
)
GO
ALTER TABLE dbo.SampleTable NOCHECK CONSTRAINT [FK_SampleTable_ParentSampleTable]
GO