Создать внешний ключ для системных таблиц
Я хочу создать таблицу со столбцами:
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
для обновления и вставки для обработки проверки.