Sql server 创建系统表的外键
我要创建包含以下列的表:Sql server 创建系统表的外键,sql-server,foreign-keys,sysobjects,Sql Server,Foreign Keys,Sysobjects,我要创建包含以下列的表: 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(objec
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
不是表。这是一个系统视图,由以专有SQL Server格式存储的数据支持。如果要确保存储的名称正确,请添加一个用于更新和插入的触发器来处理检查。sys.objects
是一个视图而不是一个表。您仍然无法创建FKs到系统对象。好的,谢谢。。我不确定我是否能做这件事你为什么要做这件事?首先,它会阻止拖放/重新创建,因为新对象的id是随机分配的。也许你可以告诉我们你想解决什么问题,而不是告诉我们你想用sys.objects的外键来解决这个问题。如果你要添加这个引用,我建议级联删除,这样当从sys.objects中删除一个对象时,你就不会被挂断,sys.objects在你的用户表中有一个子记录。