日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

SqlServer用户数据库的系统视图sysobjects、syscolumns、systypes

發(fā)布時間:2024/9/20 windows 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SqlServer用户数据库的系统视图sysobjects、syscolumns、systypes 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  想獲得SqlServer用戶數(shù)據(jù)庫的Schema,本來想直接用ADO的SqlConnection對象的GetSchema()方法,但是架構(gòu)中居然沒有PrimaryKeys,只好借助于T-SQL語句了!在網(wǎng)上找到了一下的語句,可以正確執(zhí)行。

查詢用戶表的信息 1 SELECT 2 3 表名=CASE WHEN a.colorder=1 THEN d.name ELSE '' END, 4 5 表說明=CASE WHEN a.colorder=1 THEN isnull(f.VALUE,'') ELSE '' END, 6 7 字段序號=a.colorder, 8 9 字段名=a.name, 10 11 標(biāo)識=CASE WHEN COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 THEN ''ELSE '' END, 12 13 主鍵=CASE WHEN EXISTS(SELECT 1 FROM sysobjects WHERE xtype='PK' AND name IN ( 14 15 SELECT name FROM sysindexes WHERE indid IN( 16 17 SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 18 19 ))) THEN '' ELSE '' END, 20 21 類型=b.name, 22 23 占用字節(jié)數(shù)=a.LENGTH, 24 25 長度=COLUMNPROPERTY(a.id,a.name,'PRECISION'), 26 27 小數(shù)位數(shù)=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0), 28 29 允許空=CASE WHEN a.isnullable=1 THEN ''ELSE '' END, 30 31 默認(rèn)值=isnull(e.text,''), 32 33 字段說明=isnull(g.[VALUE],'') 34 35 FROM syscolumns a 36 37 LEFT JOIN systypes b ON a.xtype=b.xusertype 38 39 INNER JOIN sysobjects d ON a.id=d.id AND d.xtype='U' AND d.name<>'dtproperties' 40 41 LEFT JOIN syscomments e ON a.cdefault=e.id 42 43 LEFT JOIN sys.extended_properties g ON a.id=g.major_id AND a.colid=g.major_id 44 45 LEFT JOIN sys.extended_properties f ON d.id=f.major_id AND f.major_id =0 46 47 --where d.name='要查詢的表' --如果只查詢指定表,加上此條件 48 49 ORDER BY a.id,a.colorder

  執(zhí)行結(jié)果上圖所示。對應(yīng)的sysobjects、syscolumns、systypes系統(tǒng)表沒有找到,但是系統(tǒng)視圖中可以看到,sys.sysobjects、sys.syscolumns、sys.systypes幾個系統(tǒng)視圖。

  獲取數(shù)據(jù)表的方法:

select * from sysobjects where xType = 'U'

  sysobjects:SQL-SERVER的每個數(shù)據(jù)庫內(nèi)都有此系統(tǒng)表,它存放該數(shù)據(jù)庫內(nèi)創(chuàng)建的所有對象,如約束、默認(rèn)值、日志、規(guī)則、存儲過程等,每個對象在表中占一行。以下是此系統(tǒng)表的字段名稱和相關(guān)說明。Name,id,xtype,uid,status:分別是對象名,對象ID,對象類型,所有者對象的用戶ID,對象狀態(tài)。?
  xtype:對象類型。可以是下列對象類型中的一種:?
   C = CHECK 約束?
   D = 默認(rèn)值或 DEFAULT 約束?
   F = FOREIGN KEY 約束?
   L = 日志?
   FN = 標(biāo)量函數(shù)?
   IF = 內(nèi)嵌表函數(shù)?
   P = 存儲過程?
   PK = PRIMARY KEY 約束(類型是 K)?
   RF = 復(fù)制篩選存儲過程?
   S = 系統(tǒng)表?
   TF = 表函數(shù)?
   TR = 觸發(fā)器?
   U = 用戶表?
   UQ = UNIQUE 約束(類型是 K)?
   V = 視圖?
   X = 擴(kuò)展存儲過程?
  當(dāng)xtype='U' and status>0代表是用戶建立的表,對象名就是表名,對象ID就是表的ID值。?

轉(zhuǎn)載于:https://www.cnblogs.com/yhlx125/archive/2012/08/21/2648538.html

總結(jié)

以上是生活随笔為你收集整理的SqlServer用户数据库的系统视图sysobjects、syscolumns、systypes的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。