Azure sql database SQL Azure数据仓库动态SQL选择查询

Azure sql database SQL Azure数据仓库动态SQL选择查询,azure-sql-database,azure-sqldw,Azure Sql Database,Azure Sqldw,在Azure SQL数据仓库存储过程中,我尝试形成动态SQL并执行select查询,但无法获取结果集 下面是代码片段: 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 ''%'+ @conditi

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

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
它显示的错误是
将计数(*)分配给变量时,select查询中“=”附近的语法不正确。但在Azure SQL数据库中,相同的逻辑工作正常。请帮助解决此问题。

Azure SQL数据仓库不支持select@var。


您可以找到解决方法,因为您不能在SQL DW或PDW中使用SELECT设置变量,所以您需要改用SET

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

您可以在以下SQL DW功能论坛上投票选择功能: