DECLARE @myTable TABLE(
Name VARCHAR(50),
Year INT,
Hours INT )
INSERT INTO @myTable *.... some values*
DECLARE @var INT
SET @var = 2015
DECLARE @DynamicPivot VARCHAR(MAX)
SET @DynamicPivot = 'SELECT * FROM
@myTable PIVOT( SUM(Hours) FOR Year IN (' + @var + ') ) AS PvtTable
EXEC sp_executesql @DynamicPivot
我正在尝试创建一个动态表格并使用Pivot旋转表格。@var中的值是已经存在于动态表Year INT
中的值。除了在尝试执行动态Pivot时出现错误之外,一切都正常。尽管我同时运行整个代码,但它仍然给出了@myTable未声明
的错误。问题可能出在pivot声明上,但我真的找不到问题所在。有任何想法吗?
sp_executesql
执行的动态 SQL 会在与其余 SQL 不同的批处理中运行。 - Chris Pickford