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

Откуда: Москва
Сообщений: 826
версия MS SQL 2005

Необходимо организовать ежедневное скриптование структуры базы (в основном на случай случайной порчи какого-либо кода или случайного удаления объектов базы). Прежде всего интересует сохранение кода ХП, функций, вьюх, структур таблиц со всеми ограничениями и индексами. Ранее в 2000 версии это было организовано через запуск из JOBа хранимой процедуры, где был вызов scptxfr.exe

set @cmd = '"c:\Program Files\Microsoft SQL Server\MSSQL\Upgrade\scptxfr.exe"' +
           ' /s ' + @sServerName + 
           ' /d ' + @sDatabaseName + 
           ' /I' + 
           ' /f ' + @sPath + '\' + @sFileName + 
           ' /r' +
           ' /A' +
           ' /Y'

В 2005 это не работает. Поиск юзал, но так ничего пригодного не нашел. Кто-то может предложить более-менее работающий вариант?
17 окт 07, 10:59    [4803645]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
ё`
Guest
переходить на нормальные средства разработки (средства контроля версий)
17 окт 07, 11:01    [4803671]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
avec
Member

Откуда: Москва
Сообщений: 826
ё`
переходить на нормальные средства разработки (средства контроля версий)


Объясните мне целесообразность городить этот огород, если над проектом работает полтора разработчика?
17 окт 07, 11:07    [4803757]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
avec
ё`
переходить на нормальные средства разработки (средства контроля версий)


Объясните мне целесообразность городить этот огород, если над проектом работает полтора разработчика?

Даже если ОДИН, удобно и быстро!
17 окт 07, 11:14    [4803824]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
Glory
Member

Откуда:
Сообщений: 104751
avec
ё`
переходить на нормальные средства разработки (средства контроля версий)


Объясните мне целесообразность городить этот огород, если над проектом работает полтора разработчика?

Не нужно будет отделять сохранение истории изменений от процесса этих изменений
17 окт 07, 11:16    [4803842]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
avec
Member

Откуда: Москва
Сообщений: 826
Knyazev Alexey
avec
ё`
переходить на нормальные средства разработки (средства контроля версий)


Объясните мне целесообразность городить этот огород, если над проектом работает полтора разработчика?

Даже если ОДИН, удобно и быстро!


Это требует дополнительных вложений дял покупки софта или есть достойные бесплатные варианты?
17 окт 07, 11:21    [4803877]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
Crimean
Member

Откуда:
Сообщений: 13147
> Это требует дополнительных вложений дял покупки софта или есть достойные бесплатные варианты?

полно бесплатных вариантов вообще-то
но для 1.5 разработчика достаточно просто работать не с базой, а с файлами
17 окт 07, 12:03    [4804268]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
avec
Member

Откуда: Москва
Сообщений: 826
Crimean
> Это требует дополнительных вложений дял покупки софта или есть достойные бесплатные варианты?

полно бесплатных вариантов вообще-то
но для 1.5 разработчика достаточно просто работать не с базой, а с файлами


это как?
17 окт 07, 12:16    [4804383]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
BusyMan
Member

Откуда: Москва
Сообщений: 4927
Crimean
> Это требует дополнительных вложений дял покупки софта или есть достойные бесплатные варианты?

полно бесплатных вариантов вообще-то
но для 1.5 разработчика достаточно просто работать не с базой, а с файлами


ухты ))) слушай, а ты в Travian не играешь?
А то у нас там есть некий Crimean ))))))))
17 окт 07, 12:25    [4804460]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

avec wrote:
> Объясните мне целесообразность городить этот огород, если над проектом
> работает полтора разработчика?
У меня даже мои "наколенные" поделки, сделанные для меня лично - лежат в
VSS.

Posted via ActualForum NNTP Server 1.4

17 окт 07, 12:41    [4804601]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
Denis A.
Member

Откуда: Челябинск
Сообщений: 353
avec
версия MS SQL 2005

Необходимо организовать ежедневное скриптование структуры базы (в основном на случай случайной порчи какого-либо кода или случайного удаления объектов базы). Прежде всего интересует сохранение кода ХП, функций, вьюх, структур таблиц со всеми ограничениями и индексами. Ранее в 2000 версии это было организовано через запуск из JOBа хранимой процедуры, где был вызов scptxfr.exe


в SQL 2005 есть возможность повесить триггер на БД, которые будет вызываться сервером при выполнении DDL-операций. В BOL есть пример, как можно автоматически отслеживать изменение структуры таблиц, логируя эти операции в отдельную таблицу.
17 окт 07, 15:32    [4805993]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
Crimean
Member

Откуда:
Сообщений: 13147
> это как?

писать надо в файлы
потом поднимать их в базу
тогда скриптовать ничего не надо
17 окт 07, 15:50    [4806138]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
avec
Member

Откуда: Москва
Сообщений: 826
Crimean
писать надо в файлы
потом поднимать их в базу
тогда скриптовать ничего не надо


Интересный подход. Но мне кажется, очень много лишних телодвижений ради непонятно чего. Скриптинг идет в фоне, он реально бывает нужен раз в два месяца. И никаких проблем. Не понимаю, почему это так сложно сделать.
17 окт 07, 16:14    [4806332]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
avec
Member

Откуда: Москва
Сообщений: 826
Denis A.

в SQL 2005 есть возможность повесить триггер на БД, которые будет вызываться сервером при выполнении DDL-операций. В BOL есть пример, как можно автоматически отслеживать изменение структуры таблиц, логируя эти операции в отдельную таблицу.


Изменение текста хранимых процедур тоже можно логгировать?
17 окт 07, 16:16    [4806351]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
Crimean
Member

Откуда:
Сообщений: 13147
> Интересный подход

ну тогда не храните исходники вашего софта
если что - всегда можно декомпилировать!
17 окт 07, 17:05    [4806685]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
avec
Member

Откуда: Москва
Сообщений: 826
Crimean
> Интересный подход

ну тогда не храните исходники вашего софта
если что - всегда можно декомпилировать!


Прикольная аналогия :-) Но в текстовом редакторе никогда программы не писал.
17 окт 07, 17:09    [4806704]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
Crimean
Member

Откуда:
Сообщений: 13147
> Но в текстовом редакторе никогда программы не писал

неужто сразу в машинных кодах? уважуха! или edline из принципа?

разработка для СУБД ничем не отличается от любой другой разработки
не надо путать оперативную работу с базой данных с разработкой под СУБД
точно так же есть и проект и все его атрибуты
17 окт 07, 18:39    [4807102]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Ежедневное скриптование структуры базы  [new]
Владимир37
Member

Откуда: Иваново
Сообщений: 55
А как просто создать руками скрипт БД со всеми таблицами, процедурами и вьюхами в SQL Server 2005?
26 май 11, 09:24    [10710904]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
iljy
Member

Откуда:
Сообщений: 8711
Владимир37,

на базе правой кнопкой - Tasks - Generate Scripts
26 май 11, 09:28    [10710920]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
Владимир37
Member

Откуда: Иваново
Сообщений: 55
Спасибо.
26 май 11, 09:53    [10711061]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
igas
Member

Откуда: Minsk
Сообщений: 175
iljy,
а без Tasks - Generate Scripts, вернее это можно как-нибудь использовать через скрипт?
27 май 11, 20:47    [10722898]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
iljy
Member

Откуда:
Сообщений: 8711
igas,

конечно, SSMS же это как-то делает. На форуме кучу раз это обсуждалось, ищите и обрящете.
27 май 11, 21:26    [10723021]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Хе, хе. Освежим данные на форуме новыми вещами.
Основа та-же SMO.
Но вот посмотрите для класса Scripter на последний пример.
Или вот из примеров sqlps как с пол-пинка создать скрипты всех вьюх.
Вот вводная.

... Пусть лучше он прогнётся под нас.
Таки да! Unix way is the best way.


PS: А я в своё время скриптование писал ручками на T-SQL. И прикрутил к Mercurial-у на стороне сервера. CheckOut / CheckIn и всё такое.
30 май 11, 01:09    [10728687]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
Хе, хе. Освежим данные на форуме новыми вещами.
Чтоб никто не подумал, что не Кеп, доказательство: SSSMS -> Object Exlorer -> {сервер} -> {база} -> правой кнопкой на Views (к примеру) -> PowerShell.
Открывается окно в нужном каталоге.
30 май 11, 20:37    [10734889]     Ответить | Цитировать Сообщить модератору
 Re: Ежедневное скриптование структуры базы  [new]
igas
Member

Откуда: Minsk
Сообщений: 175
Mnior,
скрипт на PoSh
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | out-null
 
$s = new-object ('Microsoft.SqlServer.Management.Smo.Server') '.\SQLEXPRESS'
$db = $s.Databases['ProjectDemo']
 
$scrp = new-object ('Microsoft.SqlServer.Management.Smo.Scripter') ($s)

$scrp.Options.AnsiPadding = $TRUE
$scrp.Options.AppendToFile = $False
$scrp.Options.ClusteredIndexes = $True
$scrp.Options.ScriptDrops = $FALSE
$scrp.Options.ScriptSchema = $True
$scrp.Options.DriAll = $True
$scrp.Options.NoCollation = $False
$scrp.Options.IncludeHeaders = $True
$scrp.Options.ToFileOnly = $True
$scrp.Options.Indexes = $True
$scrp.Options.IncludeDatabaseContext = $TRUE
$scrp.Options.WithDependencies = $True

$scrp.Options.TargetServerVersion = [Microsoft.SqlServer.Management.Smo.SqlServerVersion]::Version80
$ScriptFile = $ScriptThis -replace "\[|\]"

$scrp.Options.FileName = 'C:\Script_DB_PoSh.SQL'
 
$scrp.Script([Microsoft.SqlServer.Management.Smo.SqlSmoObject[]]$db.Tables)
но он скриптует только структуру.
что нужно добавить в PoSh-скрипт, чтобы в скрипт SQL сохранялось создание БД, аналогичной исходной?
8 июн 11, 11:21    [10781234]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить