SQL SERVER 資料庫查詢表和欄位資訊語句

2112511463發表於2014-11-14
 -資料庫中所有表的資訊(很強悍的)




  SELECT




  表名               =   CASE   WHEN   A.COLORDER=1   THEN   D.NAME   ELSE   ' '   END,




  表說明           =   CASE   WHEN   A.COLORDER=1   THEN   ISNULL(F.VALUE, ' ')   ELSE   ' '   END,




  欄位序號       =   A.COLORDER,




  欄位名           =   A.NAME,




  標識               =   CASE   WHEN   COLUMNPROPERTY(   A.ID,A.NAME, 'ISIDENTITY ')=1   THEN   '√ 'ELSE   ' '   END,




  主鍵               =   CASE   WHEN   EXISTS(SELECT   1   FROM   SYSOBJECTS   WHERE   XTYPE= 'PK '   AND   PARENT_OBJ=A.ID   AND   NAME   IN   (




  SELECT   NAME   FROM   SYSINDEXES   WHERE   INDID   IN(




  SELECT   INDID   FROM   SYSINDEXKEYS   WHERE   ID   =   A.ID   AND   COLID=A.COLID)))   THEN   '√ '   ELSE   ' '   END,




  型別               =   B.NAME,




  佔用位元組數   =   A.LENGTH,




  長度               =   COLUMNPROPERTY(A.ID,A.NAME, 'PRECISION '),




  小數位數       =   ISNULL(COLUMNPROPERTY(A.ID,A.NAME, 'SCALE '),0),




  允許空           =   CASE   WHEN   A.ISNULLABLE=1   THEN   '√ 'ELSE   ' '   END,




  預設值           =   ISNULL(E.TEXT, ' '),




  欄位說明       =   ISNULL(G.[VALUE], ' ')




  FROM




  SYSCOLUMNS   A




  LEFT   JOIN




  SYSTYPES   B




  ON




  A.XUSERTYPE=B.XUSERTYPE




  INNER   JOIN




  SYSOBJECTS   D




  ON




  A.ID=D.ID     AND   D.XTYPE= 'U '   AND     D.NAME <> 'DTPROPERTIES '




  LEFT   JOIN




  SYSCOMMENTS   E




  ON




  A.CDEFAULT=E.ID




  LEFT   JOIN




  sys.extended_properties   G




  ON




  A.ID=G.major_id   AND   A.COLID=G.minor_id




  LEFT   JOIN




  sys.extended_properties   F




  ON




  D.ID=F.major_id   AND   F.minor_id=0




  ORDER   BY




  A.ID,A.COLORDER

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29874631/viewspace-1332519/,如需轉載,請註明出處,否則將追究法律責任。

相關文章