У меня есть запрос SQL Server 2012, который использует OPENDATASOURCE. Я хочу создать строку init отдельно, а затем вызвать OPENDATASOURCE, чтобы избежать использования динамического SQL. Команда, которую я использую, как это:SQL Server 2012: OPENDATASOURCE не принимает переменные, только литеральные строки?
set @connection_string = 'Data Source='+ @ServerName + ';User ID=' + @UserName + ';Password=' + @Pass
select *
from opendatasource('SQLOLEDB', @connection_string)...
Однако, когда я запускаю это, я получаю ошибку
Incorrect syntax near '@connection_string'. Expecting STRING, or TEXT_LEX.
Могу ли я не разрешено использовать переменную в OPENDATASOURCE?
@ обсуждения user884248 прочитанное Erland Sommarskog в динамическом SQL для временного решения. См. Раздел «OPENQUERY», который также не принимает переменные: http://www.sommarskog.se/dynamic_sql.html –
Спасибо, я пропустил эту часть – user884248