提取数据库内所有表的字段详细说明的SQL语句

xiongying18 2010-02-19 09:24:33
为什么“字段说明”读不出数据呀?

SELECT (CASE WHEN a.colorder = 1 THEN d .name ELSE '' END) N'表名', 
a.colorder N'字段序号', a.name N'字段名', (CASE WHEN COLUMNPROPERTY(a.id,
a.name, 'IsIdentity') = 1 THEN '√' ELSE '' END) N'标识', (CASE WHEN
(SELECT COUNT(*)
FROM sysobjects
WHERE (name IN
(SELECT name
FROM sysindexes
WHERE (id = a.id) AND (indid IN
(SELECT indid
FROM sysindexkeys
WHERE (id = a.id) AND (colid IN
(SELECT colid
FROM syscolumns
WHERE (id = a.id) AND (name = a.name))))))) AND
(xtype = 'PK')) > 0 THEN '√' ELSE '' END) N'主键', b.name N'类型',
a.length N'占用字节数', COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS N'长度',
isnull(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS N'小数位数',
(CASE WHEN a.isnullable = 1 THEN '√' ELSE '' END) N'允许空', isnull(e.text, '')
N'默认值', isnull(g.[value], '') AS N'字段说明'
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
sysproperties g ON a.id = g.id AND a.colid = g.smallid
ORDER BY object_name(a.id), a.colorder
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xman_78tom 2010-02-19
  • 打赏
  • 举报
回复
lz 当前用的是 SQL Server 2005 或 2008 的版本吧。这些版本中已经取消了 sysproperties 系统表,取而代之的是 sys.extended_properties 目录视图。自己改一下吧。
starseeker7 2010-02-19
  • 打赏
  • 举报
回复
你要设计数据表的时候写进去的拉- -
或者后续用命令,,或者直接在设计界面里,。,在备注里写都行
备注就是给你的写的, ,你不写就是空的- -
feixianxxx 2010-02-19
  • 打赏
  • 举报
回复
这个显示什么的?..........
guguda2008 2010-02-19
  • 打赏
  • 举报
回复
那个要自己维护。。。。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧