sqlserver 2008 獲取表屬性

2021-09-01 04:01:34 字數 1365 閱讀 3674

以下sql 為獲取 sqlserver2008 乙個資料庫中所有表的資訊,便於把資料庫表資訊匯出為excel或者word做成資料庫字典

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

--where d.name='tablename' --如果只查詢指定表,加上此條件

order by a.id,a.colorder

SQL server2008獲取建立表裡各列的屬性

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 ...

sql server 2008獲取表的字段注釋

1 select 2 表名 case when a.colorder 1then d.name else end 3 表說明 case when a.colorder 1then isnull f.value,else end 4 字段序號 a.colorder,5 欄位名 a.name,6 標識 ...

Sql Server 2008 收縮日誌

收縮日誌 alter database dnname set recovery with no wait goalter database dnname set recovery 簡單模式 gouse dnname godbcc shrinkfile n dnname log 11,truncate...