Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 创建系统表的外键_Sql Server_Foreign Keys_Sysobjects - Fatal编程技术网

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在你的用户表中有一个子记录。