我正在尝试批量重新输入列。这意味着首先删除并重新创建它们所属的任何约束。
我发现这些约束引用的列
- 外键,
- 主键,
- 索引,
- 检查约束,
- 规则,
- 默认约束。
但我找不到计算列。
我调查过INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
,但它不包括计算列。
还有sys.computed_columns
一个显示定义,但不以可搜索的方式列出列。
还有其他地方可以看吗?如果 SQL Server 可以找出依赖关系,我想我也可以。
我正在尝试批量重新输入列。这意味着首先删除并重新创建它们所属的任何约束。
我发现这些约束引用的列
但我找不到计算列。
我调查过INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
,但它不包括计算列。
还有sys.computed_columns
一个显示定义,但不以可搜索的方式列出列。
还有其他地方可以看吗?如果 SQL Server 可以找出依赖关系,我想我也可以。
感谢 Scott Hodgin,我在
sys.sql_expression_dependencies
如果我理解正确,您想查找计算列引用了哪些列。
一种解决方案是在其中搜索
sys.computed_columns
匹配的CHARINDEX()
每一列的定义object_id
快速测试
一个特定表的查询
结果