Heim > Datenbank > MySQL-Tutorial > Wie kann ich Parameter an OPENQUERY in SQL Server übergeben?

Wie kann ich Parameter an OPENQUERY in SQL Server übergeben?

Linda Hamilton
Freigeben: 2025-01-14 12:48:44
Original
1006 Leute haben es durchsucht

How Can I Pass Parameters to OPENQUERY in SQL Server?

Parameterübergabe in OPENQUERY: Eine Problemumgehung

Der OPENQUERY-Befehl von SQL Server erleichtert die Abfrage verknüpfter Server. Die direkte Übergabe von Variablen als Parameter wird jedoch nicht unterstützt. In diesem Artikel werden effektive Problemumgehungen beschrieben.

Methoden für parametrisierte Abfragen

Trotz der Einschränkungen von OPENQUERY:

können mehrere Strategien verwendet werden, um Parameter effektiv zu übergeben

1. Grundwerte fest kodieren:

Für Abfragen mit bekannten Strukturen, die jedoch bestimmte Werte erfordern, bietet dynamisches SQL eine Lösung:

<code class="language-sql">DECLARE @TSQL varchar(8000), @VAR char(2);
SELECT @VAR = 'CA';
SELECT @TSQL = 'SELECT * FROM OPENQUERY(MyLinkedServer,''SELECT * FROM pubs.dbo.authors WHERE state = ''''' + @VAR + ''''''')';
EXEC (@TSQL);</code>
Nach dem Login kopieren

2. Übergeben der gesamten Abfrage:

Dieser Ansatz ist ideal für Szenarien, in denen die gesamte T-SQL-Abfrage oder der Name des Verbindungsservers (oder beides) dynamisch bestimmt werden muss:

<code class="language-sql">DECLARE @OPENQUERY nvarchar(4000), @TSQL nvarchar(4000), @LinkedServer nvarchar(4000);
SET @LinkedServer = 'MyLinkedServer';
SET @OPENQUERY = 'SELECT * FROM OPENQUERY('+ @LinkedServer + ','''';
SET @TSQL = 'SELECT au_lname, au_id FROM pubs..authors'')';
EXEC (@OPENQUERY+@TSQL);</code>
Nach dem Login kopieren

3. Nutzung sp_executesql:

Um komplexe Zitate zu vereinfachen, bietet die sp_executesql gespeicherte Prozedur eine sauberere Alternative:

<code class="language-sql">DECLARE @VAR char(2);
SELECT @VAR = 'CA';
EXEC MyLinkedServer.master.dbo.sp_executesql
N'SELECT * FROM pubs.dbo.authors WHERE state = @state',
N'@state char(2)',
@VAR;</code>
Nach dem Login kopieren

Durch den Einsatz dieser Techniken können Entwickler parametrisierte Abfragen erfolgreich in OPENQUERY integrieren und so die inhärenten Einschränkungen überwinden. Wählen Sie die Methode, die Ihren spezifischen Anforderungen und der Komplexität Ihrer Abfrage am besten entspricht.

Das obige ist der detaillierte Inhalt vonWie kann ich Parameter an OPENQUERY in SQL Server übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage