我创建了一个SQL视图,其中一个列值是一个SQL查询,例如“从表B中选择SELECT TOP 1”,列别名为“Result”
我尝试了INFORMATION_SCHEMA.COLUMNS,而COLUMN_NAME只显示了'TableB'。如何从TableB中检索“SELECT TOP 1”?
答案 0 :(得分:0)
我使用的是SQL SERVER 2012
create table A (
id int identity(1,1),
data nvarchar(255),
)
;
INSERT A (data)
values ('A_ligne1'),('A_ligne2')
create table B (
id int identity(1,10),
data nvarchar(255),
date datetime default GetDate(),
)
;
INSERT B (data)
values ('B_ligne1'),('B_ligne2'),('B_ligne3'),('B_ligne4')
;
GO
CREATE VIEW vue_2
AS
SELECT A.*, (SELECT TOP 1 date FROM B) AS result
FROM A
;
当我做
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'vue_2'
结果集是
TABLE_NAME COLUMN_NAME
那么,你的问题在哪里?
答案 1 :(得分:0)
IronManWK 我找到了适合你的东西。你应该试试这个:
SELECT M.definition
FROM sys.sql_modules M
WHERE M.object_id = (SELECT V.object_id FROM sys.views V WHERE V.name = 'vue_2')
提醒,'vue_2'
是我的第一个答案。