sql 语句请教个问题。。。。。。

yinxiaoqi 2010-07-17 10:32:00
首先我有个表 ZC_Admission然后查询这个表的字段

Select name from syscolumns Where ID=OBJECT_ID('ZC_Admission')

查询结果:

ID
ClasssetupID
NurseryID
SpecialtysetupID
CarsetupID
Adname
Adcode
Adsex
Adtime

但是我想把字段相关的名称也显示出来,不知道怎么去实现,要的结果是这样的.

ID 编号
ClasssetupID 班级
NurseryID 入托方式
SpecialtysetupID 特长班级
CarsetupID 接送方式
Adname 姓名
Adcode 拼音码
Adsex 性别
Adtime 时间

就想要上面的结果,不知道怎么实现,谢谢啦!
...全文
78 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinxiaoqi 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hokor 的回复:]
如果字段描述存在描述那里,可以用2楼和3楼的方法查询。如果描述没有存说明可以用下面方法添加:

SQL code

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'说明' , @level0type=N'SCHEMA',@level0name=N'架构名', @level1type=N'TABLE',@le……
[/Quote]

弱弱的 问一句哈,我知道怎么 添加说明了,但是如果写错了, 怎么修改呢!
hokor 2010-07-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yinxiaoqi 的回复:]
引用 7 楼 htl258 的回复:
引用 5 楼 yinxiaoqi 的回复:
如果我这里面还有个表 fieldvalue 是存放字段名称的,那需要怎么写呢!



SQL code

SELECT t.name AS [表名]
,c.name AS [字段名]
,fv.colname AS [字段说明]
FROM sys.tables AS t
INNER JOIN s……
[/Quote]
fieldvalue 这个表的机构是什么?fieldvalue(TableName,ColumnNmae,ColumnNote) ? 汗,如果这样的话也不用查了。。。
fieldvalue(TableObjectId,ColumnObjectId,ColumnNote) ?
hokor 2010-07-17
  • 打赏
  • 举报
回复
如果字段描述存在描述那里,可以用2楼和3楼的方法查询。如果描述没有存说明可以用下面方法添加:

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'说明' , @level0type=N'SCHEMA',@level0name=N'架构名', @level1type=N'TABLE',@level1name=N'表名', @level2type=N'COLUMN',@level2name=N'列名'
GO
--例如
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'ZC_Admission', @level2type=N'COLUMN',@level2name=N'ID'
GO

如果自己定义了表fieldvalue存放列描述,要看fieldvalue的具体结构了。。
yinxiaoqi 2010-07-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 htl258 的回复:]
引用 5 楼 yinxiaoqi 的回复:
如果我这里面还有个表 fieldvalue 是存放字段名称的,那需要怎么写呢!



SQL code

SELECT t.name AS [表名]
,c.name AS [字段名]
,fv.colname AS [字段说明]
FROM sys.tables AS t
INNER JOIN sys……
[/Quote]
我的fieldvalue 这个表需要和字段的表有关系吗?
麻烦 解释下这条语句呗,不太明白。谢谢了,呵呵
htl258_Tony 2010-07-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yinxiaoqi 的回复:]
如果我这里面还有个表 fieldvalue 是存放字段名称的,那需要怎么写呢!
[/Quote]


SELECT t.name AS [表名]
,c.name AS [字段名]
,fv.colname AS [字段说明]
FROM sys.tables AS t
INNER JOIN sys.columns AS c
ON t.object_id = c.object_id
LEFT JOIN fieldvalue AS fv
ON fv.tbid = c.object_id AND fv.colid = c.column_id
WHERE t.name='ZC_Admission'
htl258_Tony 2010-07-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yinxiaoqi 的回复:]
引用 2 楼 htl258 的回复:
SQL code
如果在描述那里,可以用以下代码查得:

SELECT t.name AS [表名]
,c.name AS [字段名]
,ep.value AS [字段说明]
FROM sys.tables AS t
INNER JOIN sys.columns AS c
ON t.object_id = c.object_id……


……
[/Quote]是的,描述在一个系统表里面。
yinxiaoqi 2010-07-17
  • 打赏
  • 举报
回复
如果我这里面还有个表 fieldvalue 是存放字段名称的,那需要怎么写呢!
yinxiaoqi 2010-07-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 htl258 的回复:]
SQL code
如果在描述那里,可以用以下代码查得:

SELECT t.name AS [表名]
,c.name AS [字段名]
,ep.value AS [字段说明]
FROM sys.tables AS t
INNER JOIN sys.columns AS c
ON t.object_id = c.object_id……
[/Quote]

谢谢你的回复,是不是 字段名称还的存放在一个表里面呢?
永生天地 2010-07-17
  • 打赏
  • 举报
回复

--2000
Select a.name,b.value
from syscolumns a left join sysproperties b
on a.id=b.id AND a.colid = b.smallid
Where a.ID=OBJECT_ID('tb')

--2005
Select a.name,b.value
from sys.syscolumns a left join sys.extended_properties b
on a.id=b.major_id AND a.colid = b.minor_id
Where a.ID=OBJECT_ID('tb')
htl258_Tony 2010-07-17
  • 打赏
  • 举报
回复
如果在描述那里,可以用以下代码查得:

SELECT t.name AS [表名]
,c.name AS [字段名]
,ep.value AS [字段说明]
FROM sys.tables AS t
INNER JOIN sys.columns AS c
ON t.object_id = c.object_id
LEFT JOIN sys.extended_properties AS ep
ON ep.major_id = c.object_id AND ep.minor_id = c.column_id
WHERE ep.class = 1 --条件省略可以查看全部字段说明,否则只显示有说明的字段
AND t.name='ZC_Admission'

在SQL2K5以上版本执行。
htl258_Tony 2010-07-17
  • 打赏
  • 举报
回复
字段相关的名称 存放在哪里?
yinxiaoqi 2010-07-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 htl258 的回复:]
SQL code
如果在描述那里,可以用以下代码查得:

SELECT t.name AS [表名]
,c.name AS [字段名]
,ep.value AS [字段说明]
FROM sys.tables AS t
INNER JOIN sys.columns AS c
ON t.object_id = c.object_id……
[/Quote]

在查询分析器里面可以执行,但是放到了 程序里面就报错了,com.microsoft.sqlserver.jdbc.SQlServerException :不支持“variant”数据类型。
yinxiaoqi 2010-07-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 htl258 的回复:]
引用 5 楼 yinxiaoqi 的回复:
如果我这里面还有个表 fieldvalue 是存放字段名称的,那需要怎么写呢!



SQL code

SELECT t.name AS [表名]
,c.name AS [字段名]
,fv.colname AS [字段说明]
FROM sys.tables AS t
INNER JOIN sys……
[/Quote]

fieldvalue 这个表的结构应该怎么建立呢!

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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