【发布时间】:2012-05-20 12:21:06
【问题描述】:
我想用 to 列创建表:
IdRole
IdProcedure
这个想法是 IdProcedure 是 sys.objects 的 FK。
当我创建这个查询时:
SELECT *
FROM sys.objects
WHERE type='p'
它工作正常,但是这个:
ALTER TABLE dbo.CORE_ProcedureXRole
ADD CONSTRAINT FK_SysProcedure
FOREIGN KEY (IdProcedure)
REFERENCES sys.objects(object_id)
告诉我:
外键“FK_SysProcedure”引用无效表 'sys.objects'。
【问题讨论】:
-
sys.objects是视图而不是表格。无论如何,您都无法为系统对象创建 FK。 -
好的,谢谢.. 我不确定我能不能做到..
-
您为什么要这样做?一方面,它会阻止删除/重新创建,因为随机分配了一个新的 object_id。也许您可以告诉我们您要解决什么问题,而不是告诉我们您想使用 sys.objects 的外键来解决它。
-
如果你要添加这个引用,我建议级联删除,这样当一个对象从 sys.objects 中删除时,你就不会全部挂断,其中有一个子记录你的用户表。
标签: sql-server foreign-keys sysobjects