如何确定 check_constraint 失败的原因?
How to determine why a check_constraint is failing?
我的应用程序使用 SQL Server 2017,我遇到了一个问题 运行 一个简单的 UPDATE
到 table。
我得到以下 SQL 异常:
The UPDATE statement conflicted with the CHECK constraint "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';
我如何确定检查实际要查找的内容以及检查失败的原因?
I have tried running the following query but the definition column is
null:
SELECT
name,
type_desc,
definition
FROM
sys.check_constraints;
你的代码是正确的,它实际上检索了 check constraint
定义,但是如果你看到 NULL
而不是它,这意味着你没有足够的 permissions
来看到 check constraint definition
.
您可以使用以下代码查看您对此 table 拥有的权限:
select *
from sys.fn_my_permissions ('your_table_schema.your_table_name', 'object');
您无法看到 check constraint
定义,除非对象上有 VIEW DEFINITION
。
我的应用程序使用 SQL Server 2017,我遇到了一个问题 运行 一个简单的 UPDATE
到 table。
我得到以下 SQL 异常:
The UPDATE statement conflicted with the CHECK constraint "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';
我如何确定检查实际要查找的内容以及检查失败的原因?
I have tried running the following query but the definition column is null:
SELECT name, type_desc, definition FROM sys.check_constraints;
你的代码是正确的,它实际上检索了 check constraint
定义,但是如果你看到 NULL
而不是它,这意味着你没有足够的 permissions
来看到 check constraint definition
.
您可以使用以下代码查看您对此 table 拥有的权限:
select *
from sys.fn_my_permissions ('your_table_schema.your_table_name', 'object');
您无法看到 check constraint
定义,除非对象上有 VIEW DEFINITION
。