U-SQL查询数据源

时间:2017-03-03 13:16:59

标签: azure azure-data-lake u-sql executequery

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

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

我成功地从教程中运行了查询:

@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:语法错误。预期之一:string-literal

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

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

提前谢谢

1 个答案:

答案 0 :(得分:0)

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

  

执行csharp_string_literal

     

字符串文字包含查询   表达式由远程数据源支持的语言。例如。,   如果数据源是Azure SQL数据库,则查询字符串   将是T-SQL。