2013-02-16 4 views
0

У меня есть таблица dic, которая имеет 2 столбца english и bangla. Я хочу вставить данные только в столбец bangla, используя массовую вставку из текстового файла.Массовая вставка в определенном столбце в SQL Server

Я попробовал, который можно вставить в 2 колонки

BULK INSERT dic 
FROM 'C:\Users\Imon-Bayazid\Desktop\wordddd\good one\test.txt' 
WITH 
(
    FIELDTERMINATOR = '\n', 
    ROWTERMINATOR = '\n' 
) 

Но как я могу сделать в одной конкретной колонке ???

+0

ваш английский столбец NOT NULL? –

+0

Вы хотите вставить или обновить столбец? Также показать схему таблицы. –

+0

столбец english или bangla может иметь нулевое значение ... @ BhushanFirake – like

ответ

2

Вы можете сопоставить поля в исходном файле с полями в таблице назначения, используя format file.

Я предполагаю, что вы знаете, что массовая вставка предназначена только для вставки новых строк, а не для обновлений.

Таким образом, вы можете иметь формат файла, как это:

<?xml version="1.0"?> 
<BCPFORMAT 
    xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<RECORD> 
    <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\n"/> 
    ... other fields? 
</RECORD> 
<ROW> 
    <COLUMN SOURCE="1" NAME="bangla"/> 
</ROW> 
</BCPFORMAT> 

Любые другие столбцы в таблице «ДИК» должны были бы быть обнуляемым или имеют значения по умолчанию.

Затем нужно указать формат файла, как вариант заявления INSERT BULK

BULK INSERT dic 
FROM 'C:\Users\Imon-Bayazid\Desktop\wordddd\good one\test.txt' 
WITH 
(
    FIELDTERMINATOR = '\n', 
    ROWTERMINATOR = '\n', 
    FORMATFILE = 'path to my format file.xml' 
) 
+0

Я не понимаю, как и где использовать ваш код выше? Я использовал свой код и просто поместил их в визуальный запрос stdio 2010. @Phil – like

+0

У вас есть SQL Server Management Studio? Вам необходимо создать файл формата на диске, например. C: \ Users \ Imon-Bayazid \ Desktop \ wordddd \ good one \ format.xml и укажите, что в вашей объемной вставке. – Phil

+0

нет, я этого не делал. Я просто использую визуальный stdio 10, у которого есть сервер sql по умолчанию – like

Смежные вопросы