|
|
|
Как получить скрипт всей БД программным способом?
|
|||
|---|---|---|---|
|
#18+
Как получить скрипт всей БД программным способом? Через VB, например? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2002, 12:57:40 |
|
||
|
Как получить скрипт всей БД программным способом?
|
|||
|---|---|---|---|
|
#18+
Если бы ты воспользовался поиском, как я, то нашел бы эту ссылку: /topic/4797\r ]/topic/4797 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2002, 13:28:41 |
|
||
|
Как получить скрипт всей БД программным способом?
|
|||
|---|---|---|---|
|
#18+
Я просмотрел эту тему, прежде чем создавать новый топик. Метод Script скриптует один объект базы... Для того чтобы проскриптовать всю базу, нужно скриптовать каждый объект в отдельности (и причем в нужном порядке). Или я чего-то не допонимаю? Есть ли другой способ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2002, 13:35:59 |
|
||
|
Как получить скрипт всей БД программным способом?
|
|||
|---|---|---|---|
|
#18+
В DTS есть такая задача Copy SQL Server Objects, которая при соотвествующей настройке генерирует штук 20 скриптов, котрые останется только применить в правильном порядке(ну конечно сначала выяснить каков этот порядок). Соответсвующие установки можно использовать и для объекта TransferObjectsTask при программировании DTS-ов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2002, 13:53:57 |
|
||
|
Как получить скрипт всей БД программным способом?
|
|||
|---|---|---|---|
|
#18+
О порядке: Как его быстро определить, порядок перекачки?? В DTS не встроено ничего такого? Может, процедурка есть? А то извините, сто штук таблиц - сначала определять очередность, потом перекачивать по одной :(( Оговорюсь, базы не идентичны по структуре, при перекачке некоторых таблиц нужны запросы (которые уже есть). Вот как бы это так загнать всё в один пакет, и чтоб выполнялось без лишних усилий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2002, 15:10:37 |
|
||
|
Как получить скрипт всей БД программным способом?
|
|||
|---|---|---|---|
|
#18+
2Та - То, о чем говорите вы, завется нахождение и перенесение различий, а не получение скрипта всех объетов базы. - Copy SQL Server Objects создает скрипты не дя каждого объекта, а для именно для "правильного"(с точки зрения SQL) их создания в другой базе Т.е. файл .TAB содержит скрипт по созданию всех таблиц НО без constraint, PK, FK и пр. Добавление же всех FK содержит в себе файл .FKY( спомощью ALTER) всех PK - .DR1 и пр. и пр. И когда я говорил про порядок, то имел ввиду порядок запуска этих скриптов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2002, 17:57:05 |
|
||
|
Как получить скрипт всей БД программным способом?
|
|||
|---|---|---|---|
|
#18+
DTS - это хорошо. Но его необходимо создать в базе. А база далеко и сделать этого там никто не может. Все должно делаться из одного exe-ка. Поэтому проблему решил, все-таки, через SQL-DMO. Вначале генерирую скрипты на создание всех таблиц, но без constraint-ов! Поэтому порядок не важен. После того как таблицы созданы - скриптую все ключи (primary, unique, foriegn), затем индексы к таблицам. После - представления, процедуры и триггеры. P.S. Эту схему я подглядел у Enterprise Manager-а :-)) Команда "Generate SQL scripts..." генерирует скрипты похожим образом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2002, 11:38:41 |
|
||
|
Как получить скрипт всей БД программным способом?
|
|||
|---|---|---|---|
|
#18+
DTS - это хорошо. Но его необходимо создать в базе. А база далеко и сделать этого там никто не может. Все должно делаться из одного exe-ка Получение скрипта осуществляется на сервере-источнике, а на нем исходная база должна таки быть. Вот чуть доработаный пример из BOL Private Sub RunTransfer(ByVal objPackage As DTS.Package2) Dim objStep As DTS.Step Dim objTask As DTS.Task Dim objXferObj As DTS.TransferObjectsTask 'create step and task Set objStep = objPackage.Steps.New Set objTask = objPackage.Tasks.New("DTSTransferObjectsTask") Set objXferObj = objTask.CustomTask 'configure transfer objects task With objXferObj .Name = "XferObjTask" .SourceServer = "(local)" .SourceUseTrustedConnection = True .SourceDatabase = "pubs" .DestinationServer = "(local)" .DestinationUseTrustedConnection = True '/*можно вообще указать любую, т.к.*/ .DestinationDatabase = "SomeOfPubs" '/*объекты мы НЕ копируем*/ .CopySchema = False '/*и данные тоже НЕ копируем*/ .CopyData = DTSTransfer_DontCopyData .DropDestinationObjectsFirst = False '/*скрипты складываем сюда*/ .ScriptFileDirectory = "X:\MyScripts" .CopyAllObjects = True .IncludeDependencies = True '/*следующие 2 опции на усмотрение*/ .IncludeLogins = False .IncludeUsers = False End With 'link step to task objStep.TaskName = objXferObj.Name objStep.Name = "XferObjStep" objPackage.Steps.Add objStep objPackage.Tasks.Add objTask End Sub Тоже самое можно сделать и через DTS, используя Copy SQL Server Objects и сбросив опции Create destination objects и Copy data. Т.к. ни объекты ни данные реально копироватся не будут, то в качестве приемника может выступать любая локальная база(хотя бы таже model). PS В этом же DTS-е можно, например, заархивировать полученные файлы скриптов и отправть их почтой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2002, 12:40:30 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1820302]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 331ms |

| 0 / 0 |
