Массовая вставка на основе условия SQL Server - PullRequest
0 голосов
/ 27 сентября 2019

Я импортирую данные в таблицу SQL Server с использованием массовой вставки.

BULK INSERT MySampleDB.dbo.Sample 
FROM ''' + @location + '''    
WITH 
    (
     FIRSTROW = 2,    
     FIELDTERMINATOR = ''","'',      
     ROWTERMINATOR = ''\n'',     
     TABLOCK    
    )

Мне нужно проверить условие, например, является ли значение столбца целым числом.Если это не целое число, тогда мне нужно пропустить всю запись от вставки.

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

По моему мнению, вы не можете сделать это в групповой вставке, но вы можете воспользоваться этой помощью, выполнив следующие шаги:

Шаг 1: Прежде всего,Вы можете добавить в таблицу столбец типа данных varchar, чтобы сопоставить столбец CSV с этим столбцом.

Шаг 2: Вы можете обновить столбец int с помощью TRY_CONVERT функция

   CREATE TABLE Bulk_InsertTable
    (ColImport VARCHAR(100) , ColINT INT)  
    GO
 CREATE VIEW Viev_Bulk_InsertTable
    AS SELECT ColImportVarchar
       FROM Bulk_InsertTable
    GO
    BULK INSERT Viev_Bulk_InsertTable FROM 'C:\Test.csv' 
    WITH
    (
    FIRSTROW = 2,
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n', 
    TABLOCK
    )

    UPDATE Bulk_InsertTable
      SET ColINT = TRY_CONVERT(INT, ColImport);


    +--------------+-----------+
    |  ColImport   |  ColINT   |
    +--------------+-----------+
    | 669165933    | 669165933 |
    | 871543967AAA | NULL      |
    | 871543967AAA | NULL      |
    | 514321792    | 514321792 |
    | 115456712    | 115456712 |
    +--------------+-----------+
0 голосов
/ 27 сентября 2019

случай использования, когда скрипт понимает его целое число или нет.

look this

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...