Сгененрировать DDL базы данных или схемы

Жук в муравейнике
Дата: 20.05.2015 18:31:55
Добрый день, сиквеланы.

Как сгенерировать програмно ddl описание обьектов схемы или базы данных?
В поиске и факью не нашёл, извините, если слишком простой вопрос.

В Оракле есть пакет dbms_metadata, в Sybase две утилиты, в MS Sql не понятно как сделать это.
a_voronin
Дата: 20.05.2015 18:38:31
Возьмите шаблонизатор вроде NVelocity и генерите с помощью него. Если вам надо в БД -- сделайте его в виде CLR функции.

А так я бы на C# утилиту написал.
Jovanny
Дата: 21.05.2015 09:23:16
Это читали?
http://habrahabr.ru/post/145263/
А для программных объектов можете взять скрипты из представления sys.sql_modules.
Жук в муравейнике
Дата: 21.05.2015 15:22:31
А можно средствами только базы данных? Без дотнет классов.
Только SQL-T-SQL
a_voronin
Дата: 21.05.2015 15:37:42
Жук в муравейнике
А можно средствами только базы данных? Без дотнет классов.
Только SQL-T-SQL


Изящества dbms_metadata не ждите (я знаю, что это такое, использовал). Конкатенируйте строки в nvarchar(max) переменную, если вы не хотите отдать базе работу с данными, а языкам программирования работу со строками.

Сейчас некоторые зубилом и ножом делают статуи, а некоторые 3D станком с ЧПУ. Появились 3D принтеры, которые печатают дома, но многие строить предпочитают с помощью бригады таджиков. Робот, который кладёт кладку кирпичей, уже придумали давно, но кто-то видел его на стройке?

Кому как нравится.
Jovanny
Дата: 22.05.2015 09:05:34
Жук в муравейнике
А можно средствами только базы данных? Без дотнет классов.
Только SQL-T-SQL

По процедурам, функциям, представлением можно, как я писал, из sys.sql_modules.
Или поискать самоделки типа
http://dba.stackexchange.com/questions/53085/is-there-a-way-to-generate-table-create-script-in-tsql
http://stackoverflow.com/questions/21547/in-sql-server-how-do-i-generate-a-create-table-statement-for-a-given-table

Жук в мура вейнике
Как сгенерировать програмно ddl описание обьектов схемы или базы данных?

А вообще зачем? Заскриптовать объекты можно в SSMS и куче других средств.
Если вы делаете инсталляционный пакет, для этого есть другие средства.
Жук в муравейнике
Дата: 25.05.2015 14:02:56
Отвечаю на вопрос зачем:
1) Создать пустую базу той же структуры на отдельном сервере
2) Отслеживать изменение в базе данных.
Владислав Колосов
Дата: 25.05.2015 14:13:16
Первое никак не связано со вторым.
Jovanny
Дата: 25.05.2015 14:23:33
Жук в муравейнике
1) Создать пустую базу той же структуры на отдельном сервере
Для этого необязательно генерировать скрипты всех объектов программно. Если не хотите использовать SSMS или SSIS, воспользуйтесь Data-Tier Application.