创建一个sql外键约束

时间:2010-09-14 04:29:17

标签: sql tsql

我希望创建一个约束状态,如下所示

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

1 个答案:

答案 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该子表中的哪个列引用父表中的父表和列。