擷取sqlserver資料字典的完整sql

來源:互聯網
上載者:User

標籤:

SELECT
sysobjects.name AS 表名稱 , --------------as 的作用:為欄位起一個別名
--sysproperties.[value] AS 表說明 , ----------[ ]方括弧的作用:為了避免和關鍵字衝突
syscolumns.name AS 欄位名稱 ,
--properties.[value] AS 欄位說明 ,
systypes.name AS 欄位類型 ,
syscolumns.length AS 欄位長度 ,
ISNULL(COLUMNPROPERTY(syscolumns.id, syscolumns.name,‘Scale‘), 0) AS 小數位元 ,
--isnull---(待測資料,傳回值).當待測資料為空白時返回傳回值,當大策資料為非null時,反回待測資料
CASE WHEN syscolumns.isnullable=0
THEN ‘‘
ELSE ‘ √ ‘
END AS 是否為空白 ,
CASE WHEN syscomments.text IS NULL
THEN ‘‘ ELSE syscomments.text
END AS 預設值 ,
CASE WHEN COLUMNPROPERTY(syscolumns.id, syscolumns.name, ‘IsIdentity‘)= 1
THEN ‘ √ ‘ ELSE ‘‘
END AS 遞增欄位 ,
CASE WHEN sysindexes.name IS NULL
THEN ‘‘
ELSE sysindexes.name
END AS 索引名稱 ,
CASE WHEN sysindexkeys.keyno IS NULL
THEN ‘‘
ELSE CONVERT(VARCHAR(10),sysindexkeys.keyno )
END AS 索引位置 ,
CASE WHEN sysindexes.indid=1
THEN ‘ 叢集索引 ‘
WHEN sysindexes.indid>1 AND sysindexes.indid<>255
THEN ‘ 非叢集索引 ‘
WHEN sysindexes.indid IS NULL
THEN ‘‘
ELSE
‘ 其他 ‘
END AS 索引類型 ,
CASE WHEN EXISTS
(SELECT 1
FROM sysobjects
WHERE xtype = ‘PK‘ AND name IN
(SELECT name
FROM sysindexes
WHERE indid IN
(SELECT indid
FROM sysindexkeys
WHERE id = syscolumns.id AND colid = syscolumns.colid)))
THEN ‘ √ ‘ ELSE ‘‘
END AS 主鍵 ,
CASE WHEN sysforeignkeys.constid IS NULL
THEN ‘‘
ELSE ‘ √ ‘
END AS 外健
FROM syscolumns -- 資料表欄位
INNER JOIN sysobjects -- 資料對象
ON sysobjects.id = syscolumns.id
INNER JOIN systypes -- 資料類型
ON syscolumns.xtype = systypes.xtype

LEFT OUTER JOIN syscomments -- 注釋資訊
ON syscolumns.cdefault = syscomments.id
LEFT OUTER JOIN sysindexkeys -- 索引中的鍵或列的資訊
ON sysindexkeys.id = syscolumns.id
AND sysindexkeys.colid = syscolumns.colid
LEFT OUTER JOIN sysindexes -- 資料庫 索引表
ON sysindexes.id = sysindexkeys.id
AND sysindexes.indid = sysindexkeys.indid
LEFT OUTER JOIN sysforeignkeys
ON sysforeignkeys.fkeyid = syscolumns.id
AND sysforeignkeys.fkey = syscolumns.colid
WHERE (sysobjects.xtype = ‘U‘)
order by sysobjects.id,syscolumns.colid

擷取sqlserver資料字典的完整sql

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.