Heim > Datenbank > MySQL-Tutorial > Wie verwende ich Variablen mit BULK INSERT in einer gespeicherten SQL-Prozedur?

Wie verwende ich Variablen mit BULK INSERT in einer gespeicherten SQL-Prozedur?

Susan Sarandon
Freigeben: 2024-12-26 12:50:11
Original
766 Leute haben es durchsucht

How to Use Variables with BULK INSERT in a SQL Stored Procedure?

Masseneinfügung von Daten mithilfe einer gespeicherten Prozedur

Sie haben eine Abfrage erstellt, die eine Masseneinfügungsaufgabe erfolgreich ausführt. Jetzt möchten Sie diese Abfrage jedoch in einer gespeicherten Prozedur kapseln, um die Wiederverwendbarkeit zu verbessern. Leider sind bei diesem Versuch Syntaxfehler aufgetreten.

Der Kern des Problems liegt in der Unfähigkeit des BULK INSERT-Befehls, einen Dateinamen als Variable zu akzeptieren. Während Ihr Code syntaktisch korrekt erscheint, schlägt das folgende Codefragment fehl:

DECLARE @filename VARCHAR(255)
SET @filename = 'e:-digit Commercial.csv' 

BULK INSERT ZIPCodes 
FROM @filename
WITH 
Nach dem Login kopieren

Daher ist es nicht möglich, den Dateinamen als Variable an die BULK INSERT-Anweisung zu übergeben. Stattdessen können Sie die BULK INSERT-Anweisung dynamisch als Zeichenfolge erstellen und mit dynamischem SQL ausführen. Hier ist ein Beispiel:

DECLARE @filepath nvarchar(500)
SET @filepath = N'e:-digit Commercial.csv'

DECLARE @bulkinsert NVARCHAR(2000)

SET @bulkinsert = 
       N'BULK INSERT ZIPCodes FROM ''' + 
       @filepath + 
       N''' WITH (FIRSTROW = 2, FIELDTERMINATOR = '','', ROWTERMINATOR = ''\n'')'

EXEC sp_executesql @bulkinsert
Nach dem Login kopieren

Dieser Code weist den Dateipfad der Variablen @filepath zu. Anschließend wird die BULK INSERT-Anweisung als Zeichenfolge erstellt und in der Variablen @bulkinsert gespeichert. Schließlich wird die dynamische SQL-Prozedur sp_executesql verwendet, um die konstruierte Anweisung auszuführen. Mit diesem Ansatz können Sie den Dateipfad parametrisieren und die BULK INSERT-Anweisung innerhalb einer gespeicherten Prozedur effektiv ausführen.

Das obige ist der detaillierte Inhalt vonWie verwende ich Variablen mit BULK INSERT in einer gespeicherten SQL-Prozedur?. 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