我想将查询写入远程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语句中的参数动态创建查询。
提前谢谢
答案 0 :(得分:0)
根据这篇文章https://msdn.microsoft.com/en-us/library/azure/mt621291.aspx,您只能提供文字,而不是变量:
执行csharp_string_literal
字符串文字包含查询 表达式由远程数据源支持的语言。例如。, 如果数据源是Azure SQL数据库,则查询字符串 将是T-SQL。