Sql server 如何确定检查约束失败的原因?
我的应用程序使用SQL Server 2017,对表执行简单的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异常:
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');