sql >> Database teknologi >  >> RDS >> Sqlserver

Masseindsæt filsti som lagret procedureparameter

Brug dynamisk SQL til at indsætte filnavnsvariablen i en streng med bulk insert-sætningen og brug sp_executesql at udføre det. Du vil måske tilføje en fejlkontrol for at kontrollere, at stien er gyldig og så videre.

CREATE PROCEDURE [importFile] (@filePath VARCHAR(MAX))
AS
BEGIN
    CREATE TABLE #Temp
    (
      row1 int,
      row2 varchar(5),
      row3 bit
    )

    DECLARE @SQL NVARCHAR(MAX) = ''
    SET @SQL = N'
    BULK INSERT #Temp
      FROM ''' + @filePath + '''
      WITH (
        FIELDTERMINATOR = '','',
        ROWTERMINATOR = ''\n''
      )'

     -- ...

     EXEC sp_executesql @SQL
END

-- to run it:
EXEC importFile 'd:\test.csv'



  1. PHP &mySQL - skrevet som ë

  2. PHP mySQL - Indsæt ny post i tabellen med automatisk stigning på primærnøgle

  3. Hvordan make_timestamp() virker i PostgreSQL

  4. Konverter fra dato til epoke-Oracle