【发布时间】:2014-06-27 03:25:52
【问题描述】:
我创建了一个动态 SQL 查询,我想将其用作视图,但是,该查询依赖于使用“DECLARE”语句。我曾尝试在没有“DECLARE”语句的情况下对其进行重组,但未能成功,但不能完全正确。我正在使用 SQL Server Express 2014,希望能提供任何帮助。
DECLARE @query nvarchar(MAX)
DECLARE @Name nvarchar(MAX)
select @Name = STUFF((SELECT distinct ',' + QUOTENAME(Name)
FROM [dbo].[ObjectView]
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
SET @query = ' SELECT * from
(
select *
from [dbo].[ObjectView]
)t
pivot (MAX(Value) for Name IN (' +@Name+ ')) AS PivotTable'
execute(@query)
【问题讨论】:
-
您不能在必须使用存储过程的视图中使用动态 SQL。
-
您可以使用动态脚本创建/重新创建视图,这是您在这方面最值得信赖的。
标签: sql sql-view dynamicquery