sql >> Database >  >> RDS >> Sqlserver

Bestandspad in bulk invoegen als parameter voor opgeslagen procedure

Gebruik dynamische SQL om de bestandsnaamvariabele in een string te injecteren met de bulk insert-instructie en gebruik sp_executesql om het uit te voeren. Misschien wilt u wat foutcontrole toevoegen om te controleren of het pad geldig is, enzovoort.

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. Een subset van rijen selecteren uit een PHP-tabel

  2. beginnershandleiding voor rapportviewer?

  3. INSERT INTO ... OP DUPLICATE UPDATE alle waarden

  4. Wat is er mis met de installatie van php oracle client oci8