sql >> Database >  >> RDS >> Sqlserver

Hoe kan ik BULK INSERT met een extra kolom met bestandsnaam?

U kunt een kolom toevoegen FileName varchar(max) naar de ResultsDump-tabel, maak een weergave van de tabel met de nieuwe kolom, voeg bulksgewijs in de weergave in en stel na elke invoeging de bestandsnaam in voor kolommen waar deze nog steeds de standaardwaarde heeft null :

CREATE TABLE dbo.ResultsDump
(
    PC FLOAT,
    Amp VARCHAR(50),
    RCS VARCHAR(50),
    CW VARCHAR(50),
    State0 VARCHAR(50),
    State1 VARCHAR(50),
)
GO

ALTER TABLE dbo.ResultsDump ADD [FileName] VARCHAR(300) NULL 
GO 

CREATE VIEW dbo.vw_ResultsDump AS
SELECT
    PC,
    Amp,
    RCS,
    CW,
    State0,
    State1
FROM
    ResultsDump
GO

BULK INSERT vw_ResultsDump
    FROM 'c:\distance1000_7_13_2010_1_13PM_Avery DennisonAD_2300008_10S_Lock.csv' 
    WITH 
    ( 
        FIRSTROW = 2, 
        MAXERRORS = 0, 
        FIELDTERMINATOR = ',', 
        ROWTERMINATOR = '\n'
    )

UPDATE dbo.ResultsDump 
SET [FileName] = 'c:\distance1000_7_13_2010_1_13PM_Avery DennisonAD_2300008_10S_Lock.csv'
WHERE [FileName] IS NULL 

BULK INSERT vw_ResultsDump
    FROM 'c:\distance1000_7_13_2010_2_27PM_Avery DennisonAD_2300009_10S_Lock.csv' 
    WITH 
    ( 
        FIRSTROW = 2, 
        MAXERRORS = 0, 
        FIELDTERMINATOR = ',', 
        ROWTERMINATOR = '\n'
    )

UPDATE dbo.ResultsDump 
SET [FileName] = 'distance1000_7_13_2010_2_27PM_Avery DennisonAD_2300009_10S_Lock.csv'
WHERE [FileName] IS NULL 


  1. Verschil tussen ANSI- en Unicode-stuurprogramma's van MySQL

  2. Aangepaste zoekopdracht Paginering Cakephp

  3. Krijg het totale aantal rijen in ORACLE en krijg dan slechts 4 resultaten

  4. 2 manieren om de karaktersets beschikbaar te krijgen in MariaDB