1

I would like to write query to remote Azure SQL database.

I followed the tutorial via Query Data Source - Method 1

I was successful to run the query from tutorial:

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

But...

I would like to update this query to following form:

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

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

I got an error

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

Any idea why I cannot use query stored in string value?

In real query I need to dynamically create query based on parameters in where statement.

Thank you in advance

Dan Rediske
  • 852
  • 4
  • 14
peterko
  • 503
  • 1
  • 6
  • 18

1 Answers1

0

According to this article https://msdn.microsoft.com/en-us/library/azure/mt621291.aspx you can provide only a literal, not a variable:

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.

Community
  • 1
  • 1
Naugolnykh
  • 16
  • 1
  • Is why it not possible to use concatenation of literals? For Example `@results1 = SELECT * FROM EXTERNAL MyAzureSQLDBDataSource EXECUTE @"SELECT @@SERVERNAME AS serverName, GETDATE() AS dayTime, " + @"DB_NAME() AS databaseName";` – peterko Mar 06 '17 at 14:09