我希望创建一个约束状态,如下所示
Code.CodeTable ( CodeID smallint, CategoryID smallint,....) --> Parent Table
Admin.Document( DocumentTypeID smallint,.....) --> Child Table
FK将是带有Code.CodeTable.CodeID的Admin.Document.DocumentTypeID地图
我希望有一个约束,只检查Code.CodeTable.CodeID
只有Code.CodeTable.CategoryID = 15
。
答案 0 :(得分:4)
正如OMG Ponies已经说过的那样 - 你不能在数据库中创建fk约束,但如果这些只是带有点的奇数表名(非常不鼓励!因为SQL Server已经使用了虚线架构:(数据库)。(架构)。 (对象名称),因此在你的表名中有点只是在某些时候要求麻烦....),那么你应该能够像这样创建你的约束:
ALTER TABLE [Admin.Document]
ADD CONSTRAINT FK_AdminDocument_CodeTableCodeID
FOREIGN KEY(DocumentTypeID) REFERENCES [Code.CodeTable](CodeID)
由于表名中有点,因此需要将这些名称括在方括号[]中。
基本上,您需要修改子表并告诉SQL Server该子表中的哪个列引用父表中的父表和列。