Verwenden einer Variablen in einer OPENROWSET-Abfrage
Versuche, einen Ausdruck in einer OPENROWSET-Abfrage zu verwenden, führen häufig zu einem Fehler wie „Falsche Syntax in der Nähe ' '" Dies liegt daran, dass OPENROWSET die Verwendung von Ausdrücken zur Angabe nicht unterstützt Parameter.
Um dieses Problem zu beheben, verwenden Sie dynamisches SQL, um die OPENROWSET-Abfragezeichenfolge mit dem eingebetteten Parameterwert zu erstellen. Der folgende Code zeigt beispielsweise, wie dynamisches SQL verwendet wird, um einen ganzzahligen Parameter namens @ID an die gespeicherte Prozedur sProc1 in der OPENROWSET-Abfrage zu übergeben:
DECLARE @ID int DECLARE @sql nvarchar(max) SET @ID = 1 SET @sql = 'SELECT * FROM OPENROWSET( ''SQLNCLI'', ''DRIVER={SQL Server};'', ''EXEC dbo.sProc1 @ID = ' + CAST(@ID AS VARCHAR(10)) + ''')' -- Print @sql PRINT @sql -- Execute dynamic SQL EXEC(@sql)
In diesem Beispiel der Wert der @ID-Variablen wird mithilfe der CAST-Funktion dynamisch in die OPENROWSET-Abfragezeichenfolge eingefügt, um den ganzzahligen Wert in einen VARCHAR(10)-Wert umzuwandeln. Die resultierende dynamische SQL-Anweisung wird dann auf der Konsole ausgegeben und ausgeführt.
Das obige ist der detaillierte Inhalt vonWie verwende ich Variablen in OPENROWSET-Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!