Sql server 在Azure Synapse Analytics中以XML形式执行脚本

Sql server 在Azure Synapse Analytics中以XML形式执行脚本,sql-server,tsql,azure-sqldw,azure-sql-data-warehouse,Sql Server,Tsql,Azure Sqldw,Azure Sql Data Warehouse,如前所述,我无法通过将脚本解析为XML来执行脚本。我发现基于MSDN的Synapse不支持它。有人可以帮助我如何在SQLDW中实现这一点吗?我有一个包含所有SQL语句的表,我希望通过循环该列中的每条记录来执行它们 DDL: CREATE TABLE [#Temp] ( JOB_ID INT NOT NULL, SQL_STMNT NVARCHAR(2000) ); INSERT INTO #Temp SELECT 100, 'SELECT * FROM Table_A WHERE MyDate

如前所述,我无法通过将脚本解析为XML来执行脚本。我发现基于MSDN的Synapse不支持它。有人可以帮助我如何在SQLDW中实现这一点吗?我有一个包含所有SQL语句的表,我希望通过循环该列中的每条记录来执行它们

DDL:

CREATE TABLE [#Temp]
(
JOB_ID INT NOT NULL,
SQL_STMNT NVARCHAR(2000)
);
INSERT INTO #Temp
SELECT 100, 'SELECT * FROM Table_A WHERE MyDate = @ProcessDate'
UNION 
SELECT 103, 'SELECT * FROM Table_B WHERE MyDate = @ProcessDate AND MyCode = ''ABC'''
UNION 
SELECT 110, 'SELECT * FROM Table_C WHERE MyDate = @ProcessDate AND MyID = 345'
UNION 
SELECT 200, 'SELECT * FROM Table_D WHERE MyDate = @ProcessDate'
UNION 
SELECT 230, 'SELECT * FROM Table_E WHERE MyDate = @ProcessDate'
DML:

CREATE TABLE [#Temp]
(
JOB_ID INT NOT NULL,
SQL_STMNT NVARCHAR(2000)
);
INSERT INTO #Temp
SELECT 100, 'SELECT * FROM Table_A WHERE MyDate = @ProcessDate'
UNION 
SELECT 103, 'SELECT * FROM Table_B WHERE MyDate = @ProcessDate AND MyCode = ''ABC'''
UNION 
SELECT 110, 'SELECT * FROM Table_C WHERE MyDate = @ProcessDate AND MyID = 345'
UNION 
SELECT 200, 'SELECT * FROM Table_D WHERE MyDate = @ProcessDate'
UNION 
SELECT 230, 'SELECT * FROM Table_E WHERE MyDate = @ProcessDate'
您可以使用:


谢谢格雷格!为什么工会都在这里?你想发生什么?我想不是把所有的查询合并成一个结果?请随意用分号(;)替换。不,我想我想我要遍历每条记录并执行它们。@Julaayi编辑了我的答案。那应该是你想要的。但是您也可以在临时表上使用while循环和ROW_NUMBER函数来执行循环并选择下一行。但是如果你只是执行查询,那么效率就会降低。谢谢Greg!如果我想从表a中选择*,“@MyVariable”,前提是“@MyVariable”总是在FROM之前,并且我可以从存储过程中传递该变量,该怎么办?