【问题标题】:Dynamic sql in openrowset error "is not a valid identifier."openrowset 中的动态 sql 错误“不是有效的标识符”。
【发布时间】:2016-03-07 20:14:30
【问题描述】:

我收到一个不是有效的标识符错误。我尝试调整引号,但仍然无法正确。

TIY

DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
DECLARE @DynamicQuery AS NVARCHAR(MAX)

--Get distinct values of the PIVOT Column 
SELECT @ColumnName= ISNULL(@ColumnName + ',','') 
       + QUOTENAME(CovCode)
FROM (SELECT  distinct
    CovCode

 FROM Construct.dbo.View_Claim_SummaryPTS4PTS5Diamond where system in (4,5)) AS ClaimSummary

--Prepare the PIVOT query using the dynamic 
SET @DynamicPivotQuery = 
  N'SELECT vehicleid, ' + @ColumnName + '
    FROM Construct.dbo.View_Claim_SummaryPTS4PTS5Diamond
    PIVOT(max(Claim_Exp_Nbr) 
          FOR CovCode IN (' + @ColumnName + ')) AS PVTTable'

Set @DynamicQuery = 'Select * into #tmpcde from openrowset(''SQLNCLI'', ''Server=HPL-DSQL2\HPLDSQL2;Trusted_Connection=yes;'', '''Exec @DynamicPivotQuery''')'
exec (@DynamicQuery)

Select * from #tmpcde

【问题讨论】:

  • print @DynamicPivotQuery
  • 我的回答对您有任何帮助吗?

标签: sql-server pivot dynamic-sql


【解决方案1】:

我想你想要这样:

Set @DynamicQuery = 'Select * into #tmpcde from openrowset(''SQLNCLI'', ''Server=HPL-DSQL2\HPLDSQL2;Trusted_Connection=yes;'', '''+@DynamicPivotQuery+''')';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 2020-11-05
    • 2014-04-30
    • 1970-01-01
    • 2020-02-17
    • 2017-04-18
    相关资源
    最近更新 更多