Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Сгененрировать DDL базы данных или схемы  [new]
Жук в муравейнике
Member

Откуда:
Сообщений: 714
Добрый день, сиквеланы.

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

В Оракле есть пакет dbms_metadata, в Sybase две утилиты, в MS Sql не понятно как сделать это.
20 май 15, 18:31    [17668257]     Ответить | Цитировать Сообщить модератору
 Re: Сгененрировать DDL базы данных или схемы  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
Возьмите шаблонизатор вроде NVelocity и генерите с помощью него. Если вам надо в БД -- сделайте его в виде CLR функции.

А так я бы на C# утилиту написал.
20 май 15, 18:38    [17668275]     Ответить | Цитировать Сообщить модератору
 Re: Сгененрировать DDL базы данных или схемы  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
Это читали?
http://habrahabr.ru/post/145263/
А для программных объектов можете взять скрипты из представления sys.sql_modules.
21 май 15, 09:23    [17669831]     Ответить | Цитировать Сообщить модератору
 Re: Сгененрировать DDL базы данных или схемы  [new]
Жук в муравейнике
Member

Откуда:
Сообщений: 714
А можно средствами только базы данных? Без дотнет классов.
Только SQL-T-SQL
21 май 15, 15:22    [17672064]     Ответить | Цитировать Сообщить модератору
 Re: Сгененрировать DDL базы данных или схемы  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
Жук в муравейнике
А можно средствами только базы данных? Без дотнет классов.
Только SQL-T-SQL


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

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

Кому как нравится.
21 май 15, 15:37    [17672183]     Ответить | Цитировать Сообщить модератору
 Re: Сгененрировать DDL базы данных или схемы  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
Жук в муравейнике
А можно средствами только базы данных? Без дотнет классов.
Только 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 и куче других средств.
Если вы делаете инсталляционный пакет, для этого есть другие средства.
22 май 15, 09:05    [17674523]     Ответить | Цитировать Сообщить модератору
 Re: Сгененрировать DDL базы данных или схемы  [new]
Жук в муравейнике
Member

Откуда:
Сообщений: 714
Отвечаю на вопрос зачем:
1) Создать пустую базу той же структуры на отдельном сервере
2) Отслеживать изменение в базе данных.
25 май 15, 14:02    [17685378]     Ответить | Цитировать Сообщить модератору
 Re: Сгененрировать DDL базы данных или схемы  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7871
Первое никак не связано со вторым.
25 май 15, 14:13    [17685438]     Ответить | Цитировать Сообщить модератору
 Re: Сгененрировать DDL базы данных или схемы  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
Жук в муравейнике
1) Создать пустую базу той же структуры на отдельном сервере
Для этого необязательно генерировать скрипты всех объектов программно. Если не хотите использовать SSMS или SSIS, воспользуйтесь Data-Tier Application.
25 май 15, 14:23    [17685494]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить