U-SQL查询数据源

U-SQL Query data source

我想将查询写入远程 Azure SQL 数据库。

我通过查询数据源 - 方法 1

遵循了 tutorial

我成功地 运行 来自教程的查询:

@results1 =
  SELECT *
  FROM EXTERNAL MyAzureSQLDBDataSource EXECUTE @"SELECT @@SERVERNAME AS serverName, GETDATE() AS dayTime, DB_NAME() AS databaseName";

但是...

我想将此查询更新为以下形式:

DECLARE @queryA string = @"SELECT @@SERVERNAME AS serverName, GETDATE() AS dayTime, DB_NAME() AS databaseName";

@results2 =
  SELECT *
  FROM EXTERNAL MyAzureSQLDBDataSource EXECUTE @queryA;

我收到一个错误

E_CSC_USER_SYNTAXERROR: syntax error. Expected one of: string-literal

知道为什么我不能使用存储在字符串值中的查询吗?

在实际查询中,我需要根据 where 语句中的参数动态创建查询。

提前致谢

根据这篇文章https://msdn.microsoft.com/en-us/library/azure/mt621291.aspx你只能提供文字,不能提供变量:

EXECUTE csharp_string_literal

The string literal contains a query expression in the language supported by the remote data source. E.g., if the data source is an Azure SQL Database, then the query string would be T-SQL.