@@ -2208,48 +2208,48 @@ OPTION (RECOMPILE);';
22082208 END ;
22092209
22102210 SET @dsql = N'
2211- SELECT DB_ID(@i_DatabaseName) AS [database_id],
2212- @i_DatabaseName AS database_name,
2211+ SELECT DB_ID(@i_DatabaseName) AS [database_id],
2212+ @i_DatabaseName AS database_name,
22132213 s.name,
2214- fk_object.name AS foreign_key_name,
2215- parent_object.[object_id] AS parent_object_id,
2216- parent_object.name AS parent_object_name,
2217- referenced_object.[object_id] AS referenced_object_id,
2218- referenced_object.name AS referenced_object_name,
2219- fk.is_disabled,
2220- fk.is_not_trusted,
2221- fk.is_not_for_replication,
2222- parent.fk_columns,
2223- referenced.fk_columns,
2224- [update_referential_action_desc],
2225- [delete_referential_action_desc]
2226- FROM ' + QUOTENAME (@DatabaseName) + N' .sys.foreign_keys fk
2227- JOIN ' + QUOTENAME (@DatabaseName) + N' .sys.objects fk_object ON fk.object_id=fk_object.object_id
2228- JOIN ' + QUOTENAME (@DatabaseName) + N' .sys.objects parent_object ON fk.parent_object_id=parent_object.object_id
2229- JOIN ' + QUOTENAME (@DatabaseName) + N' .sys.objects referenced_object ON fk.referenced_object_id=referenced_object.object_id
2214+ fk_object.name AS foreign_key_name,
2215+ parent_object.[object_id] AS parent_object_id,
2216+ parent_object.name AS parent_object_name,
2217+ referenced_object.[object_id] AS referenced_object_id,
2218+ referenced_object.name AS referenced_object_name,
2219+ fk.is_disabled,
2220+ fk.is_not_trusted,
2221+ fk.is_not_for_replication,
2222+ parent.fk_columns,
2223+ referenced.fk_columns,
2224+ [update_referential_action_desc],
2225+ [delete_referential_action_desc]
2226+ FROM ' + QUOTENAME (@DatabaseName) + N' .sys.foreign_keys fk
2227+ JOIN ' + QUOTENAME (@DatabaseName) + N' .sys.objects fk_object ON fk.object_id=fk_object.object_id
2228+ JOIN ' + QUOTENAME (@DatabaseName) + N' .sys.objects parent_object ON fk.parent_object_id=parent_object.object_id
2229+ JOIN ' + QUOTENAME (@DatabaseName) + N' .sys.objects referenced_object ON fk.referenced_object_id=referenced_object.object_id
22302230 JOIN ' + QUOTENAME (@DatabaseName) + N' .sys.schemas AS s ON fk.schema_id=s.schema_id
2231- CROSS APPLY ( SELECT STUFF( (SELECT N'' , '' + c_parent.name AS fk_columns
2232- FROM ' + QUOTENAME (@DatabaseName) + N' .sys.foreign_key_columns fkc
2233- JOIN ' + QUOTENAME (@DatabaseName) + N' .sys.columns c_parent ON fkc.parent_object_id=c_parent.[object_id]
2234- AND fkc.parent_column_id=c_parent.column_id
2235- WHERE fk.parent_object_id=fkc.parent_object_id
2236- AND fk.[object_id]=fkc.constraint_object_id
2237- ORDER BY fkc.constraint_column_id
2238- FOR XML PATH('' '' ) ,
2239- TYPE).value('' .'' , '' nvarchar(max)'' ), 1, 1, '' '' )/*This is how we remove the first comma*/ ) parent ( fk_columns )
2240- CROSS APPLY ( SELECT STUFF( (SELECT N'' , '' + c_referenced.name AS fk_columns
2241- FROM ' + QUOTENAME (@DatabaseName) + N' .sys. foreign_key_columns fkc
2242- JOIN ' + QUOTENAME (@DatabaseName) + N' .sys.columns c_referenced ON fkc.referenced_object_id=c_referenced.[object_id]
2243- AND fkc.referenced_column_id=c_referenced.column_id
2244- WHERE fk.referenced_object_id=fkc.referenced_object_id
2245- and fk.[object_id]=fkc.constraint_object_id
2246- ORDER BY fkc.constraint_column_id /*order by col name, we don' ' t have anything better*/
2247- FOR XML PATH('' '' ) ,
2248- TYPE).value('' .'' , '' nvarchar(max)'' ), 1, 1, '' '' ) ) referenced ( fk_columns )
2249- ' + CASE WHEN @ObjectID IS NOT NULL THEN
2250- ' WHERE fk.parent_object_id=' + CAST (@ObjectID AS NVARCHAR (30 )) + N ' OR fk.referenced_object_id=' + CAST (@ObjectID AS NVARCHAR (30 )) + N ' '
2251- ELSE N ' ' END + '
2252- ORDER BY parent_object_name, foreign_key_name
2231+ CROSS APPLY ( SELECT STUFF( (SELECT N'' , '' + c_parent.name AS fk_columns
2232+ FROM ' + QUOTENAME (@DatabaseName) + N' .sys.foreign_key_columns fkc
2233+ JOIN ' + QUOTENAME (@DatabaseName) + N' .sys.columns c_parent ON fkc.parent_object_id=c_parent.[object_id]
2234+ AND fkc.parent_column_id=c_parent.column_id
2235+ WHERE fk.parent_object_id=fkc.parent_object_id
2236+ AND fk.[object_id]=fkc.constraint_object_id
2237+ ORDER BY fkc.constraint_column_id
2238+ FOR XML PATH('' '' ) ,
2239+ TYPE).value('' .'' , '' nvarchar(max)'' ), 1, 1, '' '' )/*This is how we remove the first comma*/ ) parent ( fk_columns )
2240+ CROSS APPLY ( SELECT STUFF( (SELECT N'' , '' + c_referenced.name AS fk_columns
2241+ FROM ' + QUOTENAME (@DatabaseName) + N' .sys.foreign_key_columns fkc
2242+ JOIN ' + QUOTENAME (@DatabaseName) + N' .sys.columns c_referenced ON fkc.referenced_object_id=c_referenced.[object_id]
2243+ AND fkc.referenced_column_id=c_referenced.column_id
2244+ WHERE fk.referenced_object_id=fkc.referenced_object_id
2245+ and fk.[object_id]=fkc.constraint_object_id
2246+ ORDER BY fkc.constraint_column_id /*order by col name, we don' ' t have anything better*/
2247+ FOR XML PATH('' '' ) ,
2248+ TYPE).value('' .'' , '' nvarchar(max)'' ), 1, 1, '' '' ) ) referenced ( fk_columns )
2249+ ' + CASE WHEN @ObjectID IS NOT NULL THEN
2250+ ' WHERE fk.parent_object_id=' + CAST (@ObjectID AS NVARCHAR (30 )) + N ' OR fk.referenced_object_id=' + CAST (@ObjectID AS NVARCHAR (30 )) + N ' '
2251+ ELSE N ' ' END + '
2252+ ORDER BY parent_object_name, foreign_key_name
22532253 OPTION (RECOMPILE);' ;
22542254 IF @dsql IS NULL
22552255 RAISERROR (' @dsql is null' ,16 ,1 );
0 commit comments