Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Искуственная проверка версии.  [new]
Звег
Guest
Все доброе утро. На работе (как и во многих других предприятиях я подозреваю) любые разработки ведуться по принципу - программист написал скрипт, отдал админу, админ накатил. Но в обязанности админа не входит проверка актуальности крипта, а когда несколько разработчиков работают над одним и тем же объектом БД (например представление) возникает риск, что более старое обновление будет накатано после более нового, и соответственно "откатит" необходимые изменения. Было решено использовать Extended Propeties объектов, создавать там свойство version и проверять каждый раз перед накатом скрипта. Однако столкнулись с проблемой невозможности использования опертора create view в одном пакете с условными оперторами. Необходимо проверять версию представления, и версия старая, и если она старее чем та что в скрипте то накатывать новую. Что посоветуете ? Кроме формирования запроса строкой и вызыва его EXEC'ом.

Заранее спасибо.
23 май 11, 10:17    [10692507]     Ответить | Цитировать Сообщить модератору
 Re: Искуственная проверка версии.  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2793
if () raiserror('...',20,1)
go
creatre view ...
go
23 май 11, 10:21    [10692534]     Ответить | Цитировать Сообщить модератору
 Re: Искуственная проверка версии.  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Звег,

1. Использовать системы контроля версий. Например, SourceSafe или что-то более новое.
2. По поводу пересоздания VIEW после проверки. Управляйте с помощью SET NOEXEC ON/OFF
Можно поискать по форуму (ключевое слово NOEXEC) - было много раз.
23 май 11, 10:24    [10692549]     Ответить | Цитировать Сообщить модератору
 Re: Искуственная проверка версии.  [new]
Звег
Guest
то есть если обновление не требуется то вылетаем с пользовательской ошибкой , как то так ?
23 май 11, 10:26    [10692564]     Ответить | Цитировать Сообщить модератору
 Re: Искуственная проверка версии.  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Звег
то есть если обновление не требуется то вылетаем с пользовательской ошибкой , как то так ?
Вы кого спрашиваете?
Если меня, то - нет, не так!
Если версия самая новая (результат проверки с помощью IF), то устанавливаете SET NOEXEC ON,
и скрипт (ALTER VIEW) вообще игнорируется, пока не встретится SET NOEXEC OFF.
23 май 11, 10:33    [10692615]     Ответить | Цитировать Сообщить модератору
 Re: Искуственная проверка версии.  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Разумеется, что скрипт ALTER VIEW ограничиваем "сверху" и "снизу" разделителем пакетов (GO),
если этот скрипт выполняется в MS SQL SMS, osql, isql, sqlcmd.
Если же из Вашего клиентского приложения, то Вы его можете посылать/не посылать
на сервер в зависимости от проверки версии.
23 май 11, 10:36    [10692638]     Ответить | Цитировать Сообщить модератору
 Re: Искуственная проверка версии.  [new]
Звег
Guest
По поводу reiseerror - варинат интересный, но требует прав опредленных для наката, такого скрипта.
По поводу no exec - то есть if версию не надо обновлять то set noexec on , и далее ни че не выполняется да ?
23 май 11, 11:09    [10692828]     Ответить | Цитировать Сообщить модератору
 Re: Искуственная проверка версии.  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Звег
По поводу reiseerror - варинат интересный, но требует прав опредленных для наката, такого скрипта.
По поводу no exec - то есть if версию не надо обновлять то set noexec on , и далее ни че не выполняется да ?
Да.
Если речь идёт именно о скрипте.
В батче. Может быть, загруженном из файла.
В поиск-то не ходили? Это ведь так просто.
23 май 11, 12:48    [10693724]     Ответить | Цитировать Сообщить модератору
 Re: Искуственная проверка версии.  [new]
Звег
Guest
Нашел инфу по noexec, а поиск не юзал потому что не знал как описать проблему если честно парой слов. Спасибо за помощь!
23 май 11, 13:59    [10694289]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить