创建系统表的外键

dav*_*ibq 7 sql-server sysobjects foreign-keys

我想用列创建表:

IdRole
IdProcedure
Run Code Online (Sandbox Code Playgroud)

这个想法是IdProcedureFK来的sys.objects.

当我创建此查询时:

SELECT * 
FROM sys.objects 
WHERE type='p'
Run Code Online (Sandbox Code Playgroud)

它工作正常,但这一个:

ALTER TABLE dbo.CORE_ProcedureXRole
ADD CONSTRAINT FK_SysProcedure
FOREIGN KEY (IdProcedure)
REFERENCES sys.objects(object_id)
Run Code Online (Sandbox Code Playgroud)

告诉我:

外键'FK_SysProcedure'引用无效表'sys.objects'.

Cod*_*ent 2

sys.objects不是一张桌子。它是一个由以专有 SQL Server 格式存储的数据支持的系统视图。如果要确保存储的名称正确,请添加TRIGGERfor update 和 insert 来处理检查。