Heim > Datenbank > MySQL-Tutorial > Wie behebe ich „Falsche Syntax in der Nähe von „''-Fehler in OPENROWSET-Abfragen mit Variablen?

Wie behebe ich „Falsche Syntax in der Nähe von „''-Fehler in OPENROWSET-Abfragen mit Variablen?

Susan Sarandon
Freigeben: 2025-01-03 22:53:41
Original
839 Leute haben es durchsucht

How to Fix

Fehlerbehebung bei OPENROWSET-Abfragen mit Variablen

Beim Verwenden der OPENROWSET-Funktion für den Zugriff auf externe Daten können Fehler auftreten, wenn Sie Variablenausdrücke in die einschließen Abfragezeichenfolge. Ein solches Beispiel ist der Fehler „Falsche Syntax in der Nähe von „“. Dies tritt auf, wenn Sie versuchen, eine Variable mit der OPENROWSET-Anweisung zu verketten, wie in der folgenden Abfrage zu sehen ist:

SELECT * 
FROM OPENROWSET(
    'SQLNCLI',
    'DRIVER={SQL Server};',
    'EXEC dbo.sProc1 @ID = ' + @id 
 )
Nach dem Login kopieren

In dieser Abfrage wird die Variable @id mithilfe des Operators „“ an die EXEC-Anweisung angehängt . OPENROWSET unterstützt jedoch nicht die Verwendung von Ausdrücken in seiner Abfragezeichenfolge.

Lösung:

Um dieses Problem zu beheben, können Sie Variablen in der OPENROWSET-Abfrage nicht direkt verwenden. Stattdessen können Sie dynamisches SQL erstellen, um die Parameter zu übergeben. Hier ist ein Beispiel:

Declare @ID int
Declare @sql nvarchar(max)
Set @ID=1
Set @sql='SELECT * 
FROM OPENROWSET(
               ''SQLNCLI'',
               ''DRIVER={SQL Server};'',
               ''EXEC dbo.usp_SO @ID =' + convert(varchar(10),@ID) + ''')'

-- Print @sql
 Exec(@sql)
Nach dem Login kopieren

In dieser Lösung definieren wir eine Variable @sql, um die dynamische SQL-Abfrage zu speichern und verketten die Variable @ID mithilfe der Funktion CONVERT(). Dadurch können wir die dynamische SQL-Anweisung mit dem gewünschten Parameter ausführen.

Das obige ist der detaillierte Inhalt vonWie behebe ich „Falsche Syntax in der Nähe von „''-Fehler in OPENROWSET-Abfragen mit Variablen?. 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