SQL 动态查询无效列错误
SQL Invalid Column error on Dynamic Query
我有以下查询:
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
SELECT @ColumnName = ISNULL(@ColumnName + ',','') + QUOTENAME(MaxDate)
FROM (SELECT DISTINCT MaxDate FROM CustPeriodTable) AS MaxDates
SET @DynamicPivotQuery =
N'SELECT ' + @ColumnName + ' AS Test, min(rn)
FROM CustPeriodTable '
EXEC sp_executesql @DynamicPivotQuery
@ColumnName 中的每个条目都收到无效的列名错误。我正在设置一个更复杂的查询,该查询将涉及一个数据透视表,但我正试图让这个块首先工作。谁能指出这个问题可能来自哪里?
对于这些类型的问题,您需要查看什么是动态查询。而不是执行它 select 它。
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
SELECT @ColumnName = ISNULL(@ColumnName + ',','') + QUOTENAME(MaxDate)
FROM (SELECT DISTINCT MaxDate FROM CustPeriodTable) AS MaxDates
SET @DynamicPivotQuery =
N'SELECT ' + @ColumnName + ' AS Test, min(rn)
FROM CustPeriodTable '
SELECT @DynamicPivotQuery
-- EXEC sp_executesql @DynamicPivotQuery
从这里您应该能够确定问题所在。
我有以下查询:
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
SELECT @ColumnName = ISNULL(@ColumnName + ',','') + QUOTENAME(MaxDate)
FROM (SELECT DISTINCT MaxDate FROM CustPeriodTable) AS MaxDates
SET @DynamicPivotQuery =
N'SELECT ' + @ColumnName + ' AS Test, min(rn)
FROM CustPeriodTable '
EXEC sp_executesql @DynamicPivotQuery
@ColumnName 中的每个条目都收到无效的列名错误。我正在设置一个更复杂的查询,该查询将涉及一个数据透视表,但我正试图让这个块首先工作。谁能指出这个问题可能来自哪里?
对于这些类型的问题,您需要查看什么是动态查询。而不是执行它 select 它。
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
SELECT @ColumnName = ISNULL(@ColumnName + ',','') + QUOTENAME(MaxDate)
FROM (SELECT DISTINCT MaxDate FROM CustPeriodTable) AS MaxDates
SET @DynamicPivotQuery =
N'SELECT ' + @ColumnName + ' AS Test, min(rn)
FROM CustPeriodTable '
SELECT @DynamicPivotQuery
-- EXEC sp_executesql @DynamicPivotQuery
从这里您应该能够确定问题所在。