Skip to content

Instantly share code, notes, and snippets.

@ststeiger
Created August 22, 2024 12:01
Show Gist options
  • Save ststeiger/278dc4071219be5ea0ec358bdfa143d8 to your computer and use it in GitHub Desktop.
Save ststeiger/278dc4071219be5ea0ec358bdfa143d8 to your computer and use it in GitHub Desktop.
Figure out which computed column depends on which column
SELECT
cc.schema_name
,cc.table_name
,cc.computed_column_name
,dc.name AS dependent_column_name
,fk.REFERENCED_TABLE_SCHEMA AS referenced_table_schema
,fk.REFERENCED_TABLE_NAME AS referenced_table_name
,fk.REFERENCED_COLUMN_NAME AS referenced_column_name
FROM
(
SELECT
cc.name AS computed_column_name
,sch.name AS schema_name
,t.name AS table_name
,cc.object_id
,cc.column_id
FROM sys.computed_columns AS cc
INNER JOIN sys.tables AS t
ON t.object_id = cc.object_id
INNER JOIN sys.schemas AS sch
ON sch.schema_id = t.schema_id
WHERE (1=1)
AND sch.name = N'dbo'
AND t.name = 'T_TM_Tasks'
AND cc.name = '_TSK_OBJ_UID'
) AS cc
INNER JOIN sys.sql_expression_dependencies AS sed
ON sed.referencing_id = cc.object_id
AND sed.referencing_minor_id = cc.column_id
INNER JOIN sys.columns AS dc
ON dc.object_id = sed.referenced_id
AND dc.column_id = sed.referenced_minor_id
LEFT JOIN V_DELDATA_ForeignKeyRelations AS fk
ON fk.FK_TABLE_NAME = cc.table_name
AND fk.FK_TABLE_SCHEMA = cc.schema_name
AND fk.FK_COLUMN_NAME = dc.name
WHERE (1=1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment