تبسم ساینا
پنج شنبه 07 خرداد 1394, 17:34 عصر
سلام .. من این اسکریپت رو نوشتم واسه اینکه اسم ستون های جدول register رو برام بیاره و در یه ستون اضافه تر مشخص کنه که آیا اون ستون کلید اصلی هست یا نه:
SELECT c.column_id ID, c.name ItemName,
CASE
WHEN tblCon.CONSTRAINT_TYPE = 'PRIMARY KEY' THEN 1
ELSE 0
END ISPK
FROM sys.tables tb
JOIN sys.columns c
ON tb.name = 'register'
AND tb.[object_id] = c.[object_id]
JOIN sys.types tp
ON c.user_type_id = tp.user_type_id
LEFT JOIN sys.computed_columns cc
ON c.[object_id] = cc.[object_id]
AND c.column_id = cc.column_id
LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS K
ON c.name = k.COLUMN_NAME
LEFT JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS tblCon
ON tblCon.TABLE_NAME = 'register'
AND tblCon.CONSTRAINT_CATALOG = K.CONSTRAINT_CATALOG
AND tblCon.CONSTRAINT_SCHEMA = K.CONSTRAINT_SCHEMA
AND tblCon.CONSTRAINT_NAME = K.CONSTRAINT_NAME
مشکلی که دارم اینه که اون ستونی که کلید اصلی هست رو دوباهر تکرار میکنه و واسه یکیش میزنه ispk=0 و واسه اون یکی ispk=1.
اشکال کجاست؟131742
SELECT c.column_id ID, c.name ItemName,
CASE
WHEN tblCon.CONSTRAINT_TYPE = 'PRIMARY KEY' THEN 1
ELSE 0
END ISPK
FROM sys.tables tb
JOIN sys.columns c
ON tb.name = 'register'
AND tb.[object_id] = c.[object_id]
JOIN sys.types tp
ON c.user_type_id = tp.user_type_id
LEFT JOIN sys.computed_columns cc
ON c.[object_id] = cc.[object_id]
AND c.column_id = cc.column_id
LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS K
ON c.name = k.COLUMN_NAME
LEFT JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS tblCon
ON tblCon.TABLE_NAME = 'register'
AND tblCon.CONSTRAINT_CATALOG = K.CONSTRAINT_CATALOG
AND tblCon.CONSTRAINT_SCHEMA = K.CONSTRAINT_SCHEMA
AND tblCon.CONSTRAINT_NAME = K.CONSTRAINT_NAME
مشکلی که دارم اینه که اون ستونی که کلید اصلی هست رو دوباهر تکرار میکنه و واسه یکیش میزنه ispk=0 و واسه اون یکی ispk=1.
اشکال کجاست؟131742