Как определить, почему check_constraint не работает?
Мое приложение использует SQL Server 2017, и у меня возникла проблема с запуском простого UPDATE
к столу.
Я получаю следующее исключение SQL:
Оператор UPDATE конфликтовал с ограничением CHECK "CK__AGENTS__AGENT_ST__32AB8735"
Я пытаюсь определить, что именно является проверкой, потому что я не помню, чтобы она была настроена для рассматриваемого столбца.
Я попытался выполнить следующий запрос, но definition
столбец null
:
SELECT
name,
type_desc,
definition
FROM
sys.check_constraints;
Колонка простая VARCHAR(10)
и оператор SQL, вызывающий ошибку, выглядит так:
UPDATE AGENTS
SET AGENT_STATUS = 'INACTIVE';
Как определить, что на самом деле ищет проверка и почему она не работает?
1 ответ
Я попытался выполнить следующий запрос, но столбец определения пуст:
SELECT name, type_desc, definition FROM sys.check_constraints;
Ваш код правильный, и он на самом деле получает check constraint
определение, но если вы видите NULL
вместо этого это означает, что у вас недостаточно permissions
видеть check constraint definition
,
Вы можете увидеть, какие разрешения у вас есть для этой таблицы, используя этот код:
select *
from sys.fn_my_permissions ('your_table_schema.your_table_name', 'object');
Ты не можешь видеть check constraint
определение, если у вас нет VIEW DEFINITION
на объекте.