Heim > Datenbank > MySQL-Tutorial > Wie kann ich Parameter mit OPENQUERY in SQL Server verwenden?

Wie kann ich Parameter mit OPENQUERY in SQL Server verwenden?

Susan Sarandon
Freigeben: 2025-01-14 12:41:44
Original
1036 Leute haben es durchsucht

How Can I Use Parameters with OPENQUERY in SQL Server?

Parameter in OPENQUERY verwenden

OPENQUERY ist ein leistungsstarkes Tool für den Zugriff auf Verbindungsserverdaten, aber die Einbindung von Parametern in Abfragen kann eine Herausforderung sein. In der Dokumentation heißt es eindeutig, dass OPENQUERY keine Variablen für seine Parameter akzeptiert.

Lösung:

Um diese Einschränkung zu überwinden, stehen mehrere Problemumgehungen zur Verfügung:

  • Übergeben Sie einen Grundwert: Für einfache Fälle, in denen Sie einen bestimmten Wert übergeben müssen, verwenden Sie Code wie diesen:
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)
Nach dem Login kopieren
  • Übergeben Sie die gesamte Abfrage: Wenn Sie die vollständige Abfrage oder den Namen des Verbindungsservers übergeben müssen, verwenden Sie Code ähnlich dem folgenden:
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)
Nach dem Login kopieren
  • Verwenden Sie die gespeicherte Prozedur Sp_executesql: Um den Code zu vereinfachen und mehrere Anführungszeichenebenen zu vermeiden, verwenden Sie die folgende Methode:
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
Nach dem Login kopieren

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

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