【问题标题】:SQL Azure Data warehouse Dynamic SQL Select querySQL Azure 数据仓库 动态 SQL 选择查询
【发布时间】:2016-09-01 05:45:04
【问题描述】:

在 Azure SQL 数据仓库存储过程中,我尝试形成动态 SQL 并执行选择查询,但无法获取结果集 以下是代码片段:

DECLARE @sql nvarchar(400)
DECLARE @cnt int
BEGIN
---Some Business Logic---
SELECT @sql = N'select @cnt = count(*) from  '+quotename(@src_TableName)+' where warn_remarks  like ''%'+ @condition +'%''';
SET @parameter = N'@cnt int OUTPUT'
EXECUTE sp_executesql @sql,@parameter,@cnt = @cnt OUTPUT        
END

它显示的错误是 “'=' 附近的语法不正确”,在将 count(*) 分配给变量时的选择查询中,它给出了错误。但相同的逻辑在 Azure SQL 数据库中运行良好。请帮助解决这个问题。

【问题讨论】:

    标签: azure-sql-database azure-sqldw


    【解决方案1】:

    您需要改用 SET,因为您无法在 SQL DW 或 PDW 中使用 SELECT 设置变量。

    DECLARE @sql nvarchar(400)
    DECLARE @cnt int
    BEGIN
    ---Some Business Logic---
    SET @sql = N'SET @cnt = (select count(*) from  '+quotename(@src_TableName)+' where warn_remarks  like ''%'+ @condition +'%'')'; --replaced
    SET @parameter = N'@cnt int OUTPUT'
    EXECUTE sp_executesql @sql,@parameter,@cnt = @cnt OUTPUT        
    END
    

    【讨论】:

    【解决方案2】:
    猜你喜欢
    • 2017-01-03
    • 2017-09-15
    • 2019-08-02
    • 2016-06-30
    • 1970-01-01
    • 2016-02-06
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多