2016-05-06 7 views
4

In Azure SQL Data Warehouse gespeicherten Prozedur Ich versuche dynamisches SQL zu bilden, und wählen Sie Abfrage ausführen, ich nicht in der Lage, die resutSet Below zu holen ist Code Snippet:SQL Azure Data Warehouse Dynamische SQL-Select-Abfrage

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 

Der Fehler Es wird angezeigt "Falsche Syntax in der Nähe von '='", in der Select-Abfrage bei der Zuweisung von count (*) zu einer Variablen gibt es Fehler.Aber die gleiche Logik funktioniert in Azure SQL Database.Kindly helfen, dies zu lösen.

Antwort

5

Sie benötigen stattdessen Satz verwenden, da Sie keine Variablen einstellen SELECT in SQL DW oder PDW verwenden.

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 
+1

Dank Lot.It hat gut funktioniert ... – Prakash

+1

Sie für Features auf dem SQL DW bietet hier Forum abstimmen: https://feedback.azure.com/forums/307516-sql-data- Warenhaus –

Verwandte Themen