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