Экспорт записей из SQL Server 2005 Express Edition - PullRequest
0 голосов
/ 14 февраля 2012

У меня маленькая проблема. У моего друга есть база данных с более чем 10 таблицами, и каждая таблица содержит более 90-100 записей.

Я не могу найти обходной путь для экспорта записей (чтобы поместить в файл SQL что-то вроде этого: INSERT INTO .... VALUES ... для каждой существующей записи) из его таблиц для импорта в мою базу данных.

Как это сделать?

Я пытался: щелкнуть правой кнопкой мыши по столу -> Script Table as -> INSERT TO -> File ...

но он генерирует только оператор INSERT.

Есть решение? или эта функция только для коммерческой версии?

UPDATE

Вы можете использовать команду BCP с командной строкой, как это

На экспорт: bcp ADatabase.dbo.OneTable out d:\test\OneTable.bcp -c -Usa -Ppassword Для импорта: bcp ADatabase.dbo.OneTable in d:\test\OneTable.bcp -c -Usa -Ppassword

эти команды создадут файл BCP, содержащий записи для указанной таблицы. Вы можете импортировать используя существующий файл BCP в другую базу данных

Если вы используете удаленную базу данных, то:

bcp ADatabaseRemote.dbo.OneTableRemote out d:\test\OneTableRemote.bcp -Slocalhost/SQLExpress -Usa -Ppassword

Вместо localhost/SQLExpress вы можете использовать localhost или другое имя сервера ...

Ответы [ 2 ]

1 голос
/ 14 февраля 2012

Вероятно, самый простой способ сделать это - запустить оператор SELECT, который выводит в файл.Затем вы можете импортировать эти данные в вашу базу данных.

Для простых перемещений я также сделал копирование / вставку вручную.Иногда лучше использовать Excel в качестве промежуточной платформы, прежде чем вставлять его в новую базу данных.Возможно, вам потребуется создать временную таблицу в новой базе данных, которая точно соответствует данным, которые вы вставляете.Например, я обычно сначала не ставлю PK на временную таблицу, а поле PK просто делаю INT.Таким образом, копия станет более гладкой.

В корпоративном мире вы бы использовали SSIS для перемещения этих данных.

0 голосов
/ 14 февраля 2012

пару способов сделать это.Во-первых, выберите все из каждой таблицы и сохраните результаты в виде CSV-файла или файла с разделителями (вы можете сделать это из sql management studio).Вы также можете создавать сценарии для создания и копирования сценариев в новую базу данных, предполагая, что это также сервер SQL.Затем для импорта используйте оператор load infile.Возможно, вам придется Google синтаксис для сервера SQL, но я знаю, что это работает в MySQL и Oracle.еще не пробовал это на сервере sql.

LOAD DATA INFILE 'myfile' 
INTO TABLE stuff 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n'
SET id = NULL;

Или, если вы собираетесь на другой сервер SQL, используйте мастер импорта и экспорта SQL.

http://msdn.microsoft.com/en-us/library/ms141209.aspx

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