查看當前數據庫中已存在描述的表與字段:
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 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.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 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
sql 執行結果可以直接導出execl
添加表說明:
EXECUTE sp_addextendedproperty N'MS_Description','表說明',N'user',N'dbo',N'table',N'表名',NULL,NULL
刪除表說明:
EXEC sp_dropextendedproperty N'MS_Description','user','dbo','table', '表名', NULL,NULL
添加字段說明:
EXECUTE sp_addextendedproperty N'MS_Description','字段說明內容',N'user',N'dbo',N'table',N'表名',N'column',N'字段名'
刪除字段說明:
EXEC sp_dropextendedproperty N'MS_Description', 'user','dbo', 'table', '表名', 'column','字段名'