SQL Server 2008 - создает сценарий базы данных (схема + данные) с командной строкой

В SSMS, когда я нажимаю на базу данных "Tasks-> Generate Scripts", я получаю выходной сценарий.

Как я делаю то же с неграфическим инструментом?

9
задан SteveC 4 December 2011 в 14:11
поделиться

3 ответа

Графический инструмент — это просто оболочка вокруг классов SMO, которые фактически реализуют сценарии, такие как класс Scripter.Существует пример написания сценариев для всех таблиц в базе данных с помощью SMO в MSDN: Scripting:

//Connect to the local, default instance of SQL Server. 
{ 
   Server srv = default(Server); 
   srv = new Server(); 
   //Reference the AdventureWorks database. 
   Database db = default(Database); 
   db = srv.Databases("AdventureWorks"); 
   //Define a Scripter object and set the required scripting options. 
   Scripter scrp = default(Scripter); 
   scrp = new Scripter(srv); 
   scrp.Options.ScriptDrops = false; 
   scrp.Options.WithDependencies = true; 
   //Iterate through the tables in database and script each one. Display the script. 
   //Note that the StringCollection type needs the System.Collections.Specialized namespace to be included. 
   Table tb = default(Table); 
   Urn[] smoObjects = new Urn[2]; 
   foreach ( tb in db.Tables) { 
      smoObjects = new Urn[1]; 
      smoObjects(0) = tb.Urn; 
      if (tb.IsSystemObject == false) { 
         StringCollection sc = default(StringCollection); 
         sc = scrp.Script(smoObjects); 
         string st = null; 
         foreach ( st in sc) { 
            Console.WriteLine(st); 
         } 
      } 
   } 
} 

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

7
ответ дан 4 December 2019 в 14:27
поделиться

Для данных вы можете использовать утилиту массового экспорта под названием bcp , которая позволяет вам выгружать данные из таблиц SQL Server в файлы, например файл CSV или файл с разделителями табуляции.

Я не знаю ни одной поставляемой SQL Server утилиты, которая могла бы создавать сценарии SQL с операторами INSERT, как это делает SQL Server Management Studio.

2
ответ дан 4 December 2019 в 14:27
поделиться

Для этого можно использовать PowerShell. Пример здесь для скриптовых таблиц. http://www.simple-talk.com/sql/sql-tools/using-powershell-to-generate-table-creation-scripts/ Я предполагаю, что можно будет расширить другие типы объектов базы данных.

Редактировать Просто заметил, что в заголовке указаны данные, а также схема. Я не знаю ничего бесплатного, что делало бы это из командной строки. Redgate SQL Compare Suite можно автоматизировать из командной строки, если вы покупаете правильную версию, или вы можете написать для этого сценарий приложения / оболочки питания.

2
ответ дан 4 December 2019 в 14:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: