紧急求助!!紧急求助!!怎么样获取视图中列名(别名)和来源列名

wangjei155 2008-09-21 11:50:50
紧急求助
在SQL Server2005中怎么样,读取视图的元数据??
要求 来源表名可以是视图或基表
视图名,视图列名,来源表名,来源列名
...全文
197 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenbei421 2011-04-01
  • 打赏
  • 举报
回复
sysdepends 从这个表中关联有问题,如果视图不是通过代码创建,这个表中就没有记录
chenjunsheep 2008-09-21
  • 打赏
  • 举报
回复
..
fcuandy 2008-09-21
  • 打赏
  • 举报
回复
..
hyqwan11112 2008-09-21
  • 打赏
  • 举报
回复
学习
dawugui 2008-09-21
  • 打赏
  • 举报
回复
可以将视图语句读出来,然后自己看了.

create view my_view as select a.* , b.job_desc,b.min_lvl , b.max_lvl from employee a , jobs b where a.job_id = b.job_id
go

select text from syscomments where id = object_id('my_view')

drop view my_view

/*
text
-----------------------------------------------------------------------------------------------------------------------
create view my_view as select a.* , b.job_desc,b.min_lvl , b.max_lvl from employee a , jobs b where a.job_id = b.job_id

(所影响的行数为 1 行)
*/
zjcxc 2008-09-21
  • 打赏
  • 举报
回复
只支持引用当前库的对象, 不支持计算列之类
-晴天 2008-09-21
  • 打赏
  • 举报
回复
打开视图设计器不就全有了?!
zjcxc 2008-09-21
  • 打赏
  • 举报
回复
select 
视图名=v_o.name,
相关表名=t_o.name,
视图列名=v_c.name,
对应表字段名=t_c.name
from sysdepends d
,sysobjects v_o,syscolumns v_c
,sysobjects t_o,syscolumns t_c
where objectproperty(d.id,'IsView')=1
and d.id=v_o.id and v_o.id=v_c.id
and d.depnumber=v_c.colid
and d.depid=t_o.id and t_o.id=t_c.id
and d.depnumber=t_c.colid
-- and v_o.name='xx' --要查询的视图名
order by d.id
wangjei155 2008-09-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zjcxc 的回复:]
SQL codeselect
视图名=v_o.name,
相关表名=t_o.name,
视图列名=v_c.name,
对应表字段名=t_c.name
from sysdepends d
,sysobjects v_o,syscolumns v_c
,sysobjects t_o,syscolumns t_c
where objectproperty(d.id,'IsView')=1
and d.id=v_o.id and v_o.id=v_c.id
and d.depnumber=v_c.colid
and d.depid=t_o.id and t_o.id=t_c.id
and d.depnumber=t_c.colid
-- …
[/Quote]

查询出的没有对应啊
View_1 name 部门名字 id
View_1 department 部门名字 departmentId
View_1 name 部门信息 name
View_1 department 部门信息 name
View_1 name 用户名字 department
View_1 department 用户名字 decriptent
wangjei155 2008-09-21
  • 打赏
  • 举报
回复
查询出的没有对应啊
View_1 name 部门名字 id
View_1 department 部门名字 departmentId
View_1 name 部门信息 name
View_1 department 部门信息 name
View_1 name 用户名字 department
View_1 department 用户名字 decriptent
wangjei155 2008-09-21
  • 打赏
  • 举报
回复
问题补充比如:已存在两表 name(id,name,deparment) 和department(id,name,decriptent)

在这两个表基础上建两个视图view_1和view_2,
view_1的代码如下:
SELECT dbo.department.name AS 部门名字, dbo.department.decriptent AS 部门信息, dbo.name.name AS 用户名字, dbo.name.department AS 部门Id,
dbo.name.id AS 用户Id
FROM dbo.department INNER JOIN
dbo.name ON dbo.department.departmentId = dbo.name.department

view_2的代码如下
SELECT dbo.name.id, dbo.View_1.部门名字, dbo.View_1.部门信息, dbo.name.name AS 名字, dbo.name.department AS 信息
FROM dbo.name INNER JOIN
dbo.View_1 ON dbo.name.id = dbo.View_1.用户Id


我需要查询的是视图的元数据

比如:
视图名 视图列名 来源表名 来源列名 来源类型
view_1 用户Id name id 基表
view_1 用户名字 name name 基表
view_1 部门id deparment id 基表
view_1 部门名字 deparment name 基表
view_1 部门信息 deparment decritent 基表
view_2 部门名字 view_1 部门名字 视图
………………
……………………





22,209

社区成员

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

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