2014年6月12日 星期四

SQL撈取PK欄位

CREATE FUNCTION ufn_GetPKCols
(
@TABLE VarChar(max)
)
RETURNS NVarChar(max)
AS
BEGIN
 DECLARE @RESULT NVarChar(max)
 SET @RESULT=
 (
  SELECT LEFT(NAMES,LEN(NAMES)-1) AS FLD_LIST
  FROM
  (
   SELECT
   (
SELECT  COL_NAME(ic.object_id,ic.column_id)+','
FROM    sys.indexes AS i INNER JOIN
sys.index_columns AS ic ON  i.object_id = ic.object_id
AND i.index_id = ic.index_id
WHERE   i.is_primary_key = 1
AND OBJECT_NAME(ic.object_id)=@TABLE
ORDER BY ic.key_ordinal
FOR XML PATH('')
   ) AS NAMES
  ) T
 )
 RETURN(@RESULT);
END

沒有留言: