如何编程获取 sqlserver 数据库 表字段的备注信息 ,能做到吗?

Jianyi 2004-09-09 09:42:21
表字段的名字,类型,长度都可以取出来,但是字段的备注信息 如何编程获取 ???大家帮帮忙。
...全文
399 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jianyi 2004-09-09
  • 打赏
  • 举报
回复
谢谢大家,问题已解决
暗石绿 2004-09-09
  • 打赏
  • 举报
回复
这个也可以
select col_name(id,smallid) as Code, value from sysproperties where OBJECT_ID( 'server' )= id
怕那没啦 2004-09-09
  • 打赏
  • 举报
回复
不是在syscolumns中哦,是在sysproperties表中
Jianyi 2004-09-09
  • 打赏
  • 举报
回复
楼上: 好象不行啊。

系统表 syscolumns 中存放列信息。
系统存储过程 sp_colums @table_name='' 可以返回特定表的架构信息,但是,备注信息没有。
怕那没啦 2004-09-09
  • 打赏
  • 举报
回复
备注信息存在当前数据库的sysproperties表中
你执行select * from sysproperties 看一下就知道了。
另外,SQL事件探查器是个有用的东东,你可以用探查器新建一个跟踪,然后在数据库中改一个字段的备注,然后在探查器中就有一堆SQL操作过的信息,分析一下。很有用的,SQL SERVER中什么都可以找出来
一脚滑倒 2004-09-09
  • 打赏
  • 举报
回复
--取表的备注

SELECT CAST(sysproperties.[value] AS varchar(8000)) AS Comment
FROM sysproperties INNER JOIN sysobjects ON sysproperties.id = sysobjects.id
WHERE (sysproperties.type = 3) AND (sysobjects.name = '表名')

--取字段的备注
SELECT CAST(sysproperties.[value] AS varchar(100)) AS Comment
FROM sysproperties INNER JOIN sysobjects ON sysproperties.id = sysobjects.id INNER JOIN syscolumns ON sysobjects.id = syscolumns.id AND sysproperties.smallid = syscolumns.colid
WHERE (sysproperties.type = 4) AND (sysobjects.name = '表名') AND (syscolumns.name = '字段名')

sunyou(砂子) :每个数据库都有这么一张系统表,并不是在master中
暗石绿 2004-09-09
  • 打赏
  • 举报
回复
用SQL 语句 :

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 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='要查询的表' --如果只查询指定表,加上此条件
order by a.id,a.colorder

cenpy 2004-09-09
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/2633/2633625.xml?temp=2.230471E-02
sunyou 2004-09-09
  • 打赏
  • 举报
回复
在master库sysproperties表中

fn_listextendedproperty 返回数据库对象的扩展属性值。
sp_addextendedproperty 将新扩展属性添加到数据库对象中。
cenpy 2004-09-09
  • 打赏
  • 举报
回复
没试过!
帮你顶!!
coffeewar 2004-09-09
  • 打赏
  • 举报
回复
不可能吧
listhome 2004-09-09
  • 打赏
  • 举报
回复
Gz

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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