擷取表結構資訊

來源:互聯網
上載者:User
               
       

         擷取表資訊
                             

SELECT 
    表名       = case when a.colorder=1 then d.name else '' end,
    表說明     = case when a.colorder=1 then isnull(f.value,'') else '' end,
    欄位名     = a.name,
    主鍵       = 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(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 
    sysproperties g 
on 
    a.id=g.id and a.colid=g.smallid  
left join 
    sysproperties f 
on 
    d.id=f.id and f.smallid=0
where 
    d.name='LW_Equipment_Stock_List'    --如果只查詢指定表,加上此條件

     擷取表內所有欄位
    

Select  Name   From SysColumns Where ID=OBJECT_ID('table1') Order By ColID

 下邊是關於 Sysobjects的介紹

經常我們要查詢表的索引,約束,相關性,觸發器的屬性,那麼要知道sysobjects這個表的欄位的意思,那麼不管要查什麼都沒有問題!

Sysobjects:SQL-SERVER的每個資料庫內都有此系統資料表,它存放該資料庫內建立的所有對象,如約束、預設值、日誌、規則、預存程序等,每個對象在表中佔一行。以下是此系統資料表的欄位名稱和相關說明。
Name,id,xtype,uid,status:分別是對象名,對象ID,物件類型,所有者對象的使用者ID,對象狀態。
物件類型(xtype)。可以是下列物件類型中的一種:
C = CHECK 條件約束
D = 預設值或 DEFAULT 約束
F = FOREIGN KEY 約束
L = 日誌
FN = 純量涵式
IF = 內嵌表函數
P = 預存程序
PK = PRIMARY KEY 約束(類型是 K)
RF = 複製篩選預存程序
S = 系統資料表
TF = 表函數
TR = 觸發器
U = 使用者表
UQ = UNIQUE 約束(類型是 K)
V = 視圖
X = 擴充預存程序
當xtype='U' and status>0代表是使用者建立的表,對象名就是表名,對象ID就是表的ID值。
用: select * from misa.dbo.sysobjects where xtype='U'and status>0 就可以列出庫misa中所有的使用者建立的表名。
 
SELECT * FROM SYSOBJECTS WHERE PARENT_OBJ = OBJECT_ID( 'CS') AND XTYPE='TR'
列出表cs的所有屬性,上面是trigger!

引用http://moretea.cnblogs.com/archive/2005/08/14/214667.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.