Создать внешний ключ для системных таблиц

Я хочу создать таблицу со столбцами:

IdRole
IdProcedure

идея в том, что IdProcedure это ФК для sys.objects,

Когда я создаю этот запрос:

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".

1 ответ

Решение

sys.objects не стол. Это системное представление, подкрепленное данными, хранящимися в собственном формате SQL Server. Если вы хотите убедиться в правильности сохраненного имени, добавьте TRIGGER для обновления и вставки для обработки проверки.

Другие вопросы по тегам