Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何确定检查约束失败的原因?_Sql Server_Check Constraints - Fatal编程技术网

Sql server 如何确定检查约束失败的原因?

Sql server 如何确定检查约束失败的原因?,sql-server,check-constraints,Sql Server,Check Constraints,我的应用程序使用SQL Server 2017,对表执行简单的更新时遇到问题 我得到以下SQL异常: UPDATE语句与CHECK约束“CK__AGENTS__AGENT_ST__32AB8735”冲突 我试图确定实际检查是什么,因为我不记得为相关列设置了检查 我已尝试运行以下查询,但定义列为空: SELECT name, type_desc, definition FROM sys.check_constraints; 该列是一个简单的VARCHAR(10)

我的应用程序使用SQL Server 2017,对表执行简单的
更新时遇到问题

我得到以下SQL异常:

UPDATE语句与CHECK约束“CK__AGENTS__AGENT_ST__32AB8735”冲突

我试图确定实际检查是什么,因为我不记得为相关列设置了检查

我已尝试运行以下查询,但
定义
列为

SELECT
    name,
    type_desc,
    definition
FROM 
    sys.check_constraints;
该列是一个简单的
VARCHAR(10)
,导致错误的SQL语句如下:

UPDATE AGENTS
SET AGENT_STATUS = 'INACTIVE';
如何确定该检查实际查找的内容以及失败的原因

我已尝试运行以下查询,但定义列不可用 空值:

您的代码是正确的,它实际上检索了
检查约束
定义,但如果您看到的是
,而不是它,这意味着您没有足够的
权限
查看
检查约束定义

您可以使用以下代码查看您对此表的权限:

select *
from sys.fn_my_permissions ('your_table_schema.your_table_name', 'object');
除非对象上有
视图定义
,否则无法查看
检查约束
定义

select *
from sys.fn_my_permissions ('your_table_schema.your_table_name', 'object');