2015-04-25 5 views
2

У меня есть 200 тыс. Записей в одной таблице, и я хочу вставить эти записи в другую таблицу. Я читал о массовой вставке, но запрос, который я нашел на веб-сайте msdn, просто не имеет никакого смысла.Массовая вставка в базу данных SQL Server из одной таблицы в другую

Это запрос

BULK INSERT AdventureWorks2012.Sales.SalesOrderDetail 
FROM 'f:\orders\lineitem.tbl' 
WITH 
    (
    FIELDTERMINATOR =' |', 
    ROWTERMINATOR =' |\n' 
); 

Что f:\orders\lineitem.tbl и все это просто не делает никакого смысла.

У меня есть таблица с четырьмя столбцами: идентификатор, FRM, ТО1 и страновым

Same это в таблице назначения

Любой простой синтаксис будет полезным

Я использую SQL Server 2008/12

+0

Путь к файлу на самом деле имеет смысл. База данных со своими таблицами должна храниться где-то на диске. Это не пустая структура. Существует множество онлайн-руководств для копирования копии таблицы или ее части. –

ответ

4

BULK INSERT импортирует из внешнего файла данных. Если у вас уже есть данные в таблице SQL Server, то вы должны сделать что-то вроде:

INSERT INTO NewTable (field1, field2, field3) 
SELECT field1, field2, field3 FROM OldTable 

НЕ указывать BULK INSERT в файле базы данных сервера SQL. Файл .tbl, указанный в вашем примере кода, относится к текстовому файлу с полями с разделителями.

+0

половина вещей, которые вы сказали, я не мог понять. Что вы подразумеваете под «НЕ указывать BULK INSERT в вашем файле базы данных SQL Server ...» – Alex

+0

В команде BULK INSERT существует предложение FROM 'filename', в котором не должно быть имени вашего файла базы данных (в качестве намека на рассмотрим меня в своем комментарии). – WaltRiceJr

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