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:
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)
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)
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
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!