SQL Server 2005 - программный экспорт таблицы (запустите файл .sql, чтобы восстановить его) - PullRequest
53 голосов
/ 21 августа 2008

У меня есть база данных с таблицей Клиенты, которые имеют некоторые данные

У меня есть другая база данных в офисе, что все то же самое, но моя таблица Customers пуста

Как я могу создать файл SQL в SQL Server 2005 (T-SQL), который берет все на столе Клиенты из первой базы данных, создает, скажем, buildcustomers.sql, я архивирую этот файл, копировать его по сети, выполнять это в моем SQL Server и вуаля! мой стол клиентов заполнен

Как я могу сделать то же самое для всей базы данных?

Ответы [ 7 ]

76 голосов
/ 16 июля 2009

Эта функциональность уже встроена в Sql Server Management Studio 2008.

Просто скачайте пробную версию и установите только клиентские инструменты (срок действия которых не должен истекать). Используйте Management Studio 2008 для подключения к базе данных 2005 года (она обратно совместима).

  1. Щелкните правой кнопкой мыши по вашей базе данных
  2. Выберите Задачи > Создание сценариев
  3. Нажмите Далее, снова выберите базу данных
  4. На экране «Выбор параметров сценария» есть параметр под названием Данные сценария , который будет генерировать операторы вставки SQL для всех ваших данных.

(Примечание: для SQL Server Management Studio 2008 R2 этот параметр называется «Типы данных для сценария» и является последним в разделе «Общие». Варианты «только данные», «схема и данные» и "только схема")

alt text alt text

25 голосов
/ 23 октября 2008

Используйте bcp (из командной строки) для сетевого файла и затем восстановите его.

например.

bcp "SELECT * FROM CustomerTable" queryout "c:\temp\CustomerTable.bcp" 
     -N -S SOURCESERVERNAME -T 

bcp TargetDatabaseTable in "c:\temp\CustomerTable.bcp" -N -S TARGETSERVERNAME -T 
  • -N использовать нативные типы
  • -T использовать доверенное соединение
  • -S ServerName

Очень быстро и легко встроить в код. (Я построил систему резервного копирования (восстановления) базы данных вокруг этой самой команды.

22 голосов
/ 30 июня 2014

Вы можете проверить следующую статью, чтобы увидеть, как это можно сделать с помощью как собственных инструментов SQL Server, так и сторонних инструментов: Методы массового копирования и массового импорта и экспорта SQL Server

Отказ от ответственности: я работаю в ApexSQL в качестве инженера службы поддержки

Надеюсь, это поможет

1 голос
/ 21 августа 2008

Вы всегда можете экспортировать данные из таблицы «Клиенты» в файл Excel и импортировать эти данные в таблицу «Клиенты».

Для импорта / экспорта данных:

  1. Щелкните правой кнопкой мыши по базе данных
  2. Перейти к Задачи
  3. Перейти к Импорт данных или Экспорт данных
  4. Измените источник данных на Microsoft Excel
  5. Следуй за волшебником
0 голосов
/ 11 июля 2013

Я просто хотел бы добавить несколько снимков экрана для Sql Server Management Studio 2008. Правильно использовать шаги, описанные ранее. Если у вас есть «Создать и опубликовать сценарий» -> «Установить параметры сценария», нажмите «Дополнительно» для просмотра параметров сценария:

! [Где найти дополнительные параметры сценария]: изображение отсутствует, потому что у меня нет подходящей репутации: (

Для Sql Server Management Studio 2008 опция включения данных - «Типы данных в сценарий»

! [Типы данных для сценария]: изображение отсутствует, потому что у меня нет подходящей репутации :(

0 голосов
/ 09 июля 2013
0 голосов
/ 23 октября 2008

Если обе базы данных находятся в одном и том же экземпляре SQL Server, т.е. используют одно и то же соединение, этот SQL может быть полезен:

INSERT INTO [DestinationDB].[schema].[table] ([column])
SELECT [column] FROM [OriginDB].[schema].[table]
GO
...