sql-server - 如何检索 SQL Server 检查约束依赖列

标签 sql-server sql-server-2008 t-sql sql-server-2008-r2 sql-server-2012

如果我创建下表

create table test(
        id1 int,
        id2 int,
        id3 int constraint CK1 check (id3 > 2),
        constraint CK2 check (id1 > id2),
)

我可以通过查询select * from sys.check_constraints找到CK1的依赖项。 Parent_column_id 将返回正确答案 3。但是,CK2 则不同,父列 id 返回 0。是否有另一个 View 可以告诉我 CK2 的依赖列?

谢谢

最佳答案

您可以使用INFORMATION_SCHEMA架构。

select cu.*
from INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE cu
inner join INFORMATION_SCHEMA.CHECK_CONSTRAINTS c on c.CONSTRAINT_NAME=cu.CONSTRAINT_NAME
where c.CONSTRAINT_NAME='CK2'

关于sql-server - 如何检索 SQL Server 检查约束依赖列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19031780/

相关文章:

sql-server - 当我们配置日志传送时,我们是否也必须打开从目标服务器到源服务器的防火墙?

sql-server - ASP.NET/SSAS/SQL Server - 现有连接被远程主机强制关闭

java.sql.SQLException : Duplicate entry for key when trying to insert in database from java 异常

sql - 将一列中的值解析为另一个表中的多列

sql-server - CASE 语句 - 将数据类型 nvarchar 转换为数字时出错

sql-server - 为什么 SQL Server 在 "select *"操作中使用非聚集索引而不是聚集 PK?

sql-server-2008 - SQL 服务器 : update multiple rows with different values

sql - 如何在 SQL Server 2008 中匹配/比较两个结果集中的值?

SQL Server 设置多个变量

sql-server - 如何获取每个季度的运行总计,而不是将重复值设为 0。使用 SQL Server 2012