Zik*_*ato 6 sql-server t-sql dmv system-tables sql-server-2016
我正在尝试批量重新输入列。这意味着首先删除并重新创建它们所属的任何约束。
我发现这些约束引用的列
但我找不到计算列。
我已经研究过INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE,但它不包括计算列。
还有sys.computed_columnswhich 显示定义,但不以可搜索的方式列出列。
我还有其他地方可以看吗?如果 SQL Server 可以弄清楚依赖关系,我想我也可以。
感谢 Scott Hodgin 我在 sys.sql_expression_dependencies
SELECT
OBJECT_NAME(sed.referencing_id) AS referencingTable
, pc.[name] AS computedColumn
, pc.is_computed
, cc.[name] AS referencedcolumn
, cc.is_computed
FROM sys.sql_expression_dependencies sed
JOIN sys.[columns] pc ON sed.referencing_minor_id = pc.column_id AND sed.referencing_id = pc.[object_id]
JOIN sys.[columns] cc ON sed.referenced_minor_id = cc.column_id AND sed.referenced_id = cc.[object_id]
WHERE sed.referencing_minor_id > 0 -- referencing object is Column
AND sed.referenced_minor_id > 0 -- referenced object is Column
AND sed.referencing_id = sed.referenced_id -- references the same table
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
609 次 |
| 最近记录: |