Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wstaw zbiorczo ścieżkę pliku jako parametr procedury składowanej

Użyj dynamicznego SQL, aby wstrzyknąć zmienną nazwy pliku do ciągu znaków za pomocą instrukcji bulk insert i użyj sp_executesql by go wykonać. Możesz dodać sprawdzanie błędów, aby sprawdzić, czy ścieżka jest prawidłowa i tak dalej.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. baza danych przywracania smo

  2. Zmień kolumnę numeru

  3. SQL — wywołanie procedury składowanej dla każdego rekordu

  4. Jak sprawić, by krok zadania sql zakończył raportowanie niepowodzenia?

  5. Wybierz kolumnę, jeśli inna kolumna jest pusta