Check the below:CTE used,simpler way...
;WITH CTE
AS
(
SELECT
A.TABLE_NAME TABLENAME, A.CONSTRAINT_NAME, B.COLUMN_NAME PRIMARYKEYCOLUMN,CONSTRAINT_TYPE,C.ORDINAL_POSITION
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS A
JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE B ON A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS C ON A.CONSTRAINT_NAME = C.CONSTRAINT_NAME
)
SELECT
DISTINCT TABLENAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,
COLUMNNAMES= REPLACE(
(
SELECT A.PRIMARYKEYCOLUMN AS [data()]
FROM CTE A
WHERE A.TABLENAME = B.TABLENAME
AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
AND A.CONSTRAINT_TYPE = B.CONSTRAINT_TYPE
ORDER BY A.TABLENAME, A.ORDINAL_POSITION
FOR XML PATH ('') ), ' ', ',')
FROM CTE B
Please use Marked as Answer if my post solved your problem and use Vote As Helpful if a post was useful.
No comments:
Post a Comment