Ответ 1
Из Management Studio Щелкните правой кнопкой мыши по базе данных. Задачи → Сгенерировать скрипты.
Это должно сделать это.
Есть ли способ получить скрипты всех таблиц, procs и других объектов из базы данных? Я знаю, что существует опция script базы данных, но она только дала мне какой-то верхний уровень script, а не script для создания всех таблиц, procs, udfs,.etc.
Из Management Studio Щелкните правой кнопкой мыши по базе данных. Задачи → Сгенерировать скрипты.
Это должно сделать это.
Я написал утилиту командной строки с открытым исходным кодом с именем SchemaZen, которая делает это. Это намного быстрее, чем скрипты из студии управления, и выход - более дружественный к версии. Он поддерживает сценарии как схемы, так и данных.
Для запуска запуска скриптов:
schemazen.exe script --server localhost --database db --scriptDir c:\somedir
Затем для воссоздания базы данных из запуска скриптов:
schemazen.exe create --server localhost --database db --scriptDir c:\somedir
Я написал утилиту для этой задачи, SMOscript.
Script генерация выполняется библиотекой SMO и поддерживает новые типы объектов в SQL 2005 и 2008.
В итоге мы использовали комбинацию SSMS script для извлечения схемы и данных, а затем использовали наш собственный инструмент базы данных, который позволяет выполнять синтаксический анализ ключевых слов и замену на токены в скриптах. Он также гарантирует, что скрипты применяются только один раз.
Почему?
Пример script (отредактирован для краткости)
-- Sleep: 5
-- Sleep after creating database to allow file system to create db files
CREATE DATABASE [$Database$]
GO
EXEC sp_dbcmptlevel [$Database$], $CompatabilityLevel$
GO
USE [$Database$]
GO
IF '1'!='$IntegratedSecurity$'
BEGIN
CREATE LOGIN [$Login$] WITH PASSWORD=N'$Password$', DEFAULT_DATABASE=[$Database$]
CREATE USER [$User$] FOR LOGIN [$Login$]
EXEC sp_addrolemember N'db_owner', N'$User$'
END
GO
Я рекомендую посмотреть на RedGate SQL packager. Он не является бесплатным, но был достаточно полезен, чтобы стоить цену.
Просто глядя на данные таблицы, чтобы вывести весь контент данных таблицы в Management Studio 2012 и 2014, он немного скрыт, но я нашел вариант после некоторого поиска:
Если вам нужно сделать это программно, вы можете использовать библиотеку DMO SQL (OLE) для SQL Server 2000, но, скорее всего, вы захотите использовать библиотеку SMO SQL (собственные библиотеки .NET) для SQL Server 2005 и более поздних версий.
Обе эти библиотеки являются неотъемлемой частью установки административных инструментов SQL Server.
Это в том случае, если генерировать полную базу данных script из SQL Server Management Studio недостаточно.