公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
版主

簡單的3個SQL視圖搞定所有SqlServer數據庫字典

tercel
2011年3月15日 12:39 本文熱度 3953
   網上有很多SQL SERVER數據庫字典的SQL語句,七零八落,我在工作整理了一下思路,總結SQL代碼如下。數據庫字典包括表結構(分2K和2005)、索引和主鍵.外鍵.約束.視圖.函數.存儲過程.觸發器.規則。可以在企業管理器、查詢分析器中簡單執行,直接了當的查出SQL2K及SQL2005的所有數據字典,方便文檔的編寫,希望對大家有幫助。

1. SqlServer2000數據庫字典--表結構.sql


SELECT TOP 100 PERCENT --a.id, 
      CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名, 
      
CASE WHEN a.colorder = 1 THEN isnull(f.value, ''ELSE '' END AS 表說明, 
      a.colorder 
AS 字段序號, a.name AS 字段名, CASE WHEN COLUMNPROPERTY(a.id, 
      a.name, 
'IsIdentity'= 1 THEN '' ELSE '' END AS 標識, 
      
CASE WHEN EXISTS
          (
SELECT 1
         
FROM dbo.sysindexes si INNER JOIN
               dbo.sysindexkeys sik 
ON si.id = sik.id AND si.indid = sik.indid INNER JOIN
               dbo.syscolumns sc 
ON sc.id = sik.id AND sc.colid = sik.colid INNER JOIN
               dbo.sysobjects so 
ON so.name = si.name AND so.xtype = 'PK'
         
WHERE sc.id = a.id AND sc.colid = a.colid) THEN '' ELSE '' END AS 主鍵, 
      b.name 
AS 類型, a.length AS 長度, COLUMNPROPERTY(a.id, a.name, 'PRECISION'
      
AS 精度, ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0AS 小數位數, 
      
CASE WHEN a.isnullable = 1 THEN '' ELSE '' END AS 允許空, ISNULL(e.text''
      
AS 默認值, ISNULL(g.[value]''AS 字段說明, d.crdate AS 創建時間, 
      
CASE WHEN a.colorder = 1 THEN d.refdate ELSE NULL END AS 更改時間
FROM dbo.syscolumns a LEFT OUTER JOIN
      dbo.systypes b 
ON a.xtype = b.xusertype INNER JOIN
      dbo.sysobjects d 
ON a.id = d.id AND d.xtype = 'U' AND 
      d.status 
>= 0 LEFT OUTER JOIN
      dbo.syscomments e 
ON a.cdefault = e.id LEFT OUTER JOIN
      dbo.sysproperties g 
ON a.id = g.id AND a.colid = g.smallid AND 
      g.name 
= 'MS_Description' LEFT OUTER JOIN
      dbo.sysproperties f 
ON d.id = f.id AND f.smallid = 0 AND 
      f.name 
= 'MS_Description'
ORDER BY d.name, a.colorder


    SqlServer2005數據庫字典--表結構.sql


SELECT TOP 100 PERCENT --a.id, 
      CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名, 
      
CASE WHEN a.colorder = 1 THEN isnull(f.value, ''ELSE '' END AS 表說明, 
      a.colorder 
AS 字段序號, a.name AS 字段名, CASE WHEN COLUMNPROPERTY(a.id, 
      a.name, 
'IsIdentity'= 1 THEN '' ELSE '' END AS 標識, 
      
CASE WHEN EXISTS
          (
SELECT 1
         
FROM dbo.sysindexes si INNER JOIN
               dbo.sysindexkeys sik 
ON si.id = sik.id AND si.indid = sik.indid INNER JOIN
               dbo.syscolumns sc 
ON sc.id = sik.id AND sc.colid = sik.colid INNER JOIN
               dbo.sysobjects so 
ON so.name = si.name AND so.xtype = 'PK'
         
WHERE sc.id = a.id AND sc.colid = a.colid) THEN '' ELSE '' END AS 主鍵, 
      b.name 
AS 類型, a.length AS 長度, COLUMNPROPERTY(a.id, a.name, 'PRECISION'
      
AS 精度, ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0AS 小數位數, 
      
CASE WHEN a.isnullable = 1 THEN '' ELSE '' END AS 允許空, ISNULL(e.text''
      
AS 默認值, ISNULL(g.[value]''AS 字段說明, d.crdate AS 創建時間, 
      
CASE WHEN a.colorder = 1 THEN d.refdate ELSE NULL END AS 更改時間
FROM dbo.syscolumns a LEFT OUTER JOIN
      dbo.systypes b 
ON a.xtype = b.xusertype INNER JOIN
      dbo.sysobjects d 
ON a.id = d.id AND d.xtype = 'U' AND 
      d.status 
>= 0 LEFT OUTER JOIN
      dbo.syscomments e 
ON a.cdefault = e.id LEFT OUTER JOIN
      sys.extended_properties g 
ON a.id = g.major_id AND a.colid = g.minor_id AND 
      g.name 
= 'MS_Description' LEFT OUTER JOIN
      sys.extended_properties f 
ON d.id = f.major_id AND f.minor_id = 0 AND 
      f.name 
= 'MS_Description'
ORDER BY d.name, 字段序號


2. SqlServer數據庫字典--索引.sql


SELECT TOP 100 PERCENT --a.id, 
      CASE WHEN b.keyno = 1 THEN c.name ELSE '' END AS 表名, 
      
CASE WHEN b.keyno = 1 THEN a.name ELSE '' END AS 索引名稱, d.name AS 列名, 
      b.keyno 
AS 索引順序, CASE indexkey_property(c.id, b.indid, b.keyno, 'isdescending'
      
WHEN 1 THEN '降序' WHEN 0 THEN '升序' END AS 排序, CASE WHEN p.id IS NULL 
      
THEN '' ELSE '' END AS 主鍵, CASE INDEXPROPERTY(c.id, a.name, 'IsClustered'
      
WHEN 1 THEN '' WHEN 0 THEN '' END AS 聚集, CASE INDEXPROPERTY(c.id, 
      a.name, 
'IsUnique'WHEN 1 THEN '' WHEN 0 THEN '' END AS 唯一, 
      
CASE WHEN e.id IS NULL THEN '' ELSE '' END AS 唯一約束, 
      a.OrigFillFactor 
AS 填充因子, c.crdate AS 創建時間, c.refdate AS 更改時間
FROM dbo.sysindexes a INNER JOIN
      dbo.sysindexkeys b 
ON a.id = b.id AND a.indid = b.indid INNER JOIN
      dbo.syscolumns d 
ON b.id = d.id AND b.colid = d.colid INNER JOIN
      dbo.sysobjects c 
ON a.id = c.id AND c.xtype = 'U' LEFT OUTER JOIN
      dbo.sysobjects e 
ON e.name = a.name AND e.xtype = 'UQ' LEFT OUTER JOIN
      dbo.sysobjects p 
ON p.name = a.name AND p.xtype = 'PK'
WHERE (OBJECTPROPERTY(a.id, N'IsUserTable'= 1AND (OBJECTPROPERTY(a.id, 
      N
'IsMSShipped'= 0AND (INDEXPROPERTY(a.id, a.name, 'IsAutoStatistics'= 0)
ORDER BY c.name, a.name, b.keyno


3. SqlServer數據庫字典--表.視圖.函數.存儲過程.觸發器.主鍵.外鍵.約束.規則.sql


SELECT DISTINCT 
      
TOP 100 PERCENT isnull(p.name,''AS 父對象, o.xtype, 
      
CASE o.xtype WHEN 'C' THEN 'CHECK 約束' WHEN 'D' THEN '默認值或DEFAULT約束'
       
WHEN 'F' THEN 'FOREIGNKEY約束' WHEN 'L' THEN '日志' WHEN 'FN' THEN '標量函數'
       
WHEN 'IF' THEN '內嵌表函數' WHEN 'P' THEN '存儲過程' WHEN 'PK' THEN 'PRIMARYKEY約束'
       
WHEN 'RF' THEN '復制篩選存儲過程' WHEN 'S' THEN '系統表' WHEN 'TF' THEN '表函數'
       
WHEN 'TR' THEN '觸發器' WHEN 'U' THEN '用戶表' WHEN 'UQ' THEN 'UNIQUE 約束'
       
WHEN 'V' THEN '視圖' WHEN 'X' THEN '擴展存儲過程' WHEN 'R' THEN '規則' ELSE NULL
       
END AS 類型, o.name AS 對象名, o.crdate AS 創建時間, o.refdate AS 更改時間, 
      c.
text AS 聲明語句,OBJECTPROPERTY(o.id, N'IsMSShipped')
FROM dbo.sysobjects o Left JOIN
      dbo.sysobjects p 
ON o.parent_obj = p.id LEFT OUTER JOIN
      dbo.syscomments c 
ON o.id = c.id
WHERE --(o.xtype IN ('C','D','F','PK','UQ','L','FN','IF','TF','TR','P','R','RF','X','S','U','V')) AND 
      (OBJECTPROPERTY(o.id, N'IsMSShipped'= 0AND (isnull(p.name,''<> N'dtproperties')
ORDER BY o.xtype DESC






數據庫技術就是一壇陳年老酒,越久越香,學以致用。

該文章在 2011/3/15 12:39:18 編輯過

全部評論1

Ccoffee
2025年4月14日 10:26
 SELECT 表名 = CASE WHEN a.colorder = 1 THEN d .name ELSE '' END, 字段序號 = a.colorder, 字段名 = a.name, 標識 = CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity') = 1 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.xtype = 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 dtproperties g ON a.id = g.id AND a.colid = g.id ORDER BY a.id, a.colorder
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产精品国产国产aⅴ | 国产三区视频在线观看 | 2025无码专区人妻系列日韩 | 国产美女一级在线观看 | 国产高清精品福利私拍国产写真 | 国产精品一区二区在线网站 | 国产精品国产三级毛片在线专区 | 国产裸舞在线一区二区 | 果冻国产传媒61国产免费 | 成人国产精品一级毛片视频老鬼 | 国产三级电影在线观看 | 69国产成人综合久久精品91 | 99久久九九国产精 | 国产亚洲视频在线观看网址 | 国产成人av | 高清在线亚洲中文 | 国产大片大全免费看软件下 | 国产美女免费牲交视频 | 国产成人aⅴ片在线观看免费 | 国产精品毛片一区二区三区 | 国产末成年毛片aⅴ在线 | 精品国产一区二区三区性色a∨ | 国产精品伊人久久免费视频 | 91精品国产一区二区三区免费 | 国产精品亚洲一区二区三区正片 | 国精产品一区二区 | 国产精品一级黄色视频 | 国产精品一久久香蕉国产线看观看 | 国产美女久久精品香蕉欧美 | 国产在线观看一区二区三区四区 | 国产精品传媒99一区二区 | a人无码亚洲成a打开 | 国产精品一区二区久久优播 | 国产一级毛片不卡中文字幕 | 1区2区3区国产av天堂 | 国产成人三区四区 | 国产av色黄看到爽 | 国产吃奶一区 | 国产一级毛片一区二区三区 | 国产女人乱人精品三区 | 国产精品成人网红女主播 |