Список форумов BOSSForum.RU - Форум. БОСС-Кадровик
Независимый форум, посвященный системе БОСС-Кадровик
и всему, что с ней связано
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Версионность SP процедур

 
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> Общие вопросы
Предыдущая тема :: Следующая тема  
Автор Сообщение
rebel25
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 06.10.2008
Сообщения: 496
Откуда: Москва

СообщениеДобавлено: Пн Фев 15, 2016 11:36    Заголовок сообщения: Версионность SP процедур Ответить с цитатой

Мне очень не хватает версионности SQL объектов, аналогично объектам дизайнера. Внедрение такого решения для SQL сервера дорого и сложно, если я не ошибаюсь.
Предлагаю добавить в дизайнер список SP процедур. Во время сохранения или изменения код, написанный в процедуре, должен выполняться, аналогично Z-процедурам. Если ошибок нет, то новая версия кода внедряется на SQL сервере, а старая сохраняется в архиве дизайнера.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Antoshes



Зарегистрирован: 17.02.2014
Сообщения: 168
Откуда: Томск

СообщениеДобавлено: Пн Фев 15, 2016 11:46    Заголовок сообщения: Ответить с цитатой

rebel25
Объекты SQL сервера никак не связаны с объектами БОСС Дизайнера.
Если вы хотите отследить версионность изменений объектов SQL используйте SQL средства.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
rebel25
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 06.10.2008
Сообщения: 496
Откуда: Москва

СообщениеДобавлено: Пн Фев 15, 2016 11:59    Заголовок сообщения: Ответить с цитатой

SQL объекты не связаны с дизайнером, но могут развертываться через дизанер и хранить там свои версии. Связь между дизайнером и сиквелом можно сделать по именам объектов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
RVV
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 14.01.2010
Сообщения: 350

СообщениеДобавлено: Пн Фев 15, 2016 12:33    Заголовок сообщения: Ответить с цитатой

Сохраняйте копии БД до обновления
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Antoshes



Зарегистрирован: 17.02.2014
Сообщения: 168
Откуда: Томск

СообщениеДобавлено: Пн Фев 15, 2016 12:38    Заголовок сообщения: Ответить с цитатой

rebel25
не думаю что БОССовцы захотят делать этот функционал. Он просто не нужен.
Если вам все таки хочется, то можете загружать в таблицу все SQL объекты, которые изменяются/добавляются обновлением и потом анализировать, вести версионность. Сделать это не сложно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
rebel25
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 06.10.2008
Сообщения: 496
Откуда: Москва

СообщениеДобавлено: Пн Фев 15, 2016 14:50    Заголовок сообщения: Ответить с цитатой

Речь не только об обновлениях, даже хочу сказать что обновления не сильно интересны. Дело касается своих разработанных сиквельных процедур и функций.
Проблема в том что Х, Z языки, RP Server это не модные вещи - под них трудно найти людей, зато TSQL знают значительно большее число сотрудников. Даже те кто знают, стараются использовать сиквельные технологии т к это модно и пригодится при смене работы.
Я считаю что не нужно ограничивать разработчика - пиши только на х языке!, они люди творческие, если их ограничивать разбегутся.
В результате имеем много своих разработок из сиквельных объектов - отчеты, расчеты (не зарплаты а например премий). Объекты постоянно дорабатываются, а версий нет - из-за этого масса проблем.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Antoshes



Зарегистрирован: 17.02.2014
Сообщения: 168
Откуда: Томск

СообщениеДобавлено: Пн Фев 15, 2016 15:24    Заголовок сообщения: Ответить с цитатой

rebel25
https://habrahabr.ru/post/258005/
для примера
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Joenka



Зарегистрирован: 08.11.2013
Сообщения: 77
Откуда: Moscow

СообщениеДобавлено: Ср Фев 17, 2016 11:37    Заголовок сообщения: Ответить с цитатой

Идея может быть и интересная. В принципе, ничто не мешает сделать произвольный отчет, в котором слева сделать дерево (грузим туда нужный нам список процедур SQL), добавляем таблицу (одна из колонок хранит bin-ик), в которой храним версии процедур. А справа собственно отображаем запись, при клике открывается диалог, в одно из полей грузим текст процедуры, только редактор SQL синтаксис не подсветит, что не есть гуд
Правда вот редактор текстовый что в дизайнере, что в других объектах мне вот лично неудобен:
1. Нет подсветки парных скобок в виде "(" "{" "["
2. Нет подсветки выделенных переменных
3. И наконец самое запредельное, нет подсветки ошибок синтаксиса, правда тут еще большой вопрос вообще к редактору из дизайнера! Wink Ну вот, к примеру, почему в дизайнере "case when ... then ... else ... end ..." не работает, а так "(case when ... then ... else ... end) ..." работает (т.е. скобки появились)

Вот и получается, что мне приходится что X язык что SQL процедуру перетаскивать текст в Notepad++ и там редактировать код (там есть подсветки скобок и переменных), а уж потом обратно перетаскивать в дизайнер или в SQL Managment Studio для работы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Antoshes



Зарегистрирован: 17.02.2014
Сообщения: 168
Откуда: Томск

СообщениеДобавлено: Ср Фев 17, 2016 11:44    Заголовок сообщения: Ответить с цитатой

Ну что, тогда все дружно просим БОСС сделать intellisense и подсветку для Дизайнера Smile

rebel25
вчера еще одна статья на хабре про версионирование SQL объектов появилась
https://habrahabr.ru/post/277359/
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
rebel25
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 06.10.2008
Сообщения: 496
Откуда: Москва

СообщениеДобавлено: Ср Фев 17, 2016 19:32    Заголовок сообщения: Ответить с цитатой

Цитата:
Идея может быть и интересная. В принципе...

Я имел в виду только деплоить сиквельные процедуры через дизайнер, чтобы хранить версии, а разработаны они могут быть где угодно до этого - как правило на среде DEV.

Сейчас пишу триггер для таблицы с доп. сегментами. Идея такая, если в тексте есть cлова create или alter procedure то во время сохранения доп. сегмента выполнить его код.

Всё вроде работает, только столкнулся с проблемой кавычек - если в тексте хранимой процедуры есть кавычки то получаю ошибку.
Передаю текст в переменную и выполняю так
EXEC(@SS)
если в тексте нет кавычек то всё работает отлично. Не подскажите как выполнить текст из поля таблицы с кавычками?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Joenka



Зарегистрирован: 08.11.2013
Сообщения: 77
Откуда: Moscow

СообщениеДобавлено: Пт Фев 19, 2016 09:30    Заголовок сообщения: Ответить с цитатой

Если так сказать "в лоб", то просто до момента exec делайте replace(sql_text,'','''').
Т.е. перестраховываемся и все попадающиеся кавычки просто дублируем как это и делается всегда в динамическом SQL.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
rebel25
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 06.10.2008
Сообщения: 496
Откуда: Москва

СообщениеДобавлено: Чт Апр 28, 2016 09:52    Заголовок сообщения: Ответить с цитатой

У меня так и не получилось использовать для внесения изменений в серверные процедуры дизайнер. Повесив триггер на соответствующую таблицу, который запускает код X процедур при сохранении, если в них встречаются символы, характерные для хранимых процедур, получал ошибку каждый раз, если в тексте процедуры были кавычки. Ничего из здесь описанного не помогло.
Можно попытаться вешать триггер на системные таблицы, но это запрещено. Создал вью к системным таблицам и триггер для нее, но от почему то не срабатывал.
Можно использовать для протоколирования профайлер или дмл триггеры, но я это не пытался делать, т к наверное это долго и не удобно.
В итоге сделал такое решение - создал джоб, который раз в сутки добавляет в протокол изменившиеся серверные объекты. Нельзя понять кто внес изменение, нельзя отследить изменения в течении дня, а в остальном меня всё устраивает.
Таким образом я получил архив серверного кода, которого мне очень не хватало - по аналогии с архивом дизайнерского кода.
Ниже текст скрипта заполнения архива:

CREATE TABLE [dbo].[user_arch](
[id] [int] IDENTITY(1,1) NOT NULL,
[object_id] int null,
[name] [varchar](500) NULL,
[type] [varchar](50) NULL,
[text] [varchar](max) NULL,
[mdate] [datetime] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

--изменившиеся объекты
insert into user_arch (object_id,name,type,text,mdate)
select o.object_id,o.name,o.type,c.definition,o.modify_date
from sys.sql_modules c join sys.objects o on (c.object_id=o.object_id)
join (select ROW_NUMBER() OVER(PARTITION BY object_id ORDER BY mdate DESC) as row, object_id, text, mdate from user_arch) t
on (t.object_id=o.object_id and t.text!=c.definition and row=1)

--добавленные объекты
insert into user_arch (object_id,name,type,text,mdate)
select o.object_id, o.name,o.type,c.definition,o.modify_date
from sys.sql_modules c join sys.objects o on (c.object_id=o.object_id)
where not exists (select * from user_arch where object_id=o.object_id)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
GIN



Зарегистрирован: 04.03.2010
Сообщения: 102

СообщениеДобавлено: Пн Июн 27, 2016 20:41    Заголовок сообщения: Ответить с цитатой

согласен, отследить проблема, так же никак не получается получить историю кто именно менял, на каждый объект не повесишь "шпиона". Меня тоже интересует данная проблема. Может есть у кого другое решение?

когда то тоже рыл в этом направлении - вот что только нашел по этой тематике у себя в переписке:

можно кстати попробовать посмотреть историю изменения в дефолтном файле...

select LoginName, StartTime, DatabaseName, ObjectName
from fn_trace_gettable
('C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL_2008\MSSQL\Log\log.trc', default)
where EventClass = 164 -- Object:Altered
and ObjectType = 8272 -- Stored Procedure

но помню, что это не помогло мне.
_________________
Что бы увидеть свет в конце туннеля, нужно все время копать...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
xiaozheng6666
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 11.12.2017
Сообщения: 253

СообщениеДобавлено: Чт Янв 11, 2018 11:40    Заголовок сообщения: Ответить с цитатой

jordan shoes
michael kors handbags
new balance shoes
pandora charms
cheap nhl jerseys
ugg outlet
ugg outlet
oakley sunglasses
coach outlet
supreme clothing
polo outlet
christian louboutin outlet
canada goose jackets
uggs outlet
michael kors outlet
coach outlet
ralph lauren polo shirts
coach outlet
coach outlet online
kate spade outlet
pandora outlet
michael kors outlet online
chrome hearts outlet
pandora outlet
fitflops shoes
canada goose outlet
converse shoes
nba jerseys
supra shoes
longchamp handbags
michael kors outlet
coach outlet online
fitflops sale
polo ralph lauren
michael kors outlet
ugg outlet
canada goose black friday
Girls shoes
canada goose outlet
uggs outlet
ugg outlet
coach outlet
true religion jeans
michael kors handbags
mac makeup
uggs outlet
nike factory outlet
canada goose jackets
michael kors
polo ralph lauren
michael kors outlet
denver broncos jerseys
canada goose coats
nike outlet
hermes outlet
vans greece
oakley sunglasses
supreme clothing
lacoste polo shirts
cheap mlb jerseys
cheap nfl jerseys
ugg outlets
air max 1
nike free 5
true religion jeans
longchamp outlet
nike sko
ugg outlet
toms sko
prada shoes
jordan shoes
polo ralph lauren
uggs outlet
hermes birkin
ray ban sunglasses
cheap jerseys
mulberry outlet
swarovski crystal
ray ban sunglasses
coach outlet online
rayban sunglasses
ray ban sunglasses
coach outlet online
tory burch outlet
ysl outlet
ferragamo shoes
coach outlet
polo ralph lauren
oakley sunglasses
michael kors handbags
fitflops outlet
cleveland cavaliers jersey
michael kors outlet
polo outlet
nike shoes
mcm outlet
chrome hearts
coach outlet
coach outlet
coach handbags
oakley sunglasses wholesale
polo outlet
pandora charms sale clearance
new balance shoes
ray-ban sunglasses
nfl jerseys
adidas shoes
canada goose outlet
adidas wings
burberry outlet
ugg boots
ugg outlet
mulberry sale
swarovski outlet
ralph lauren polo
ugg boots
supreme clothing
zapatillas salomon
cheap jerseys
michael kors outlet
kobe shoes
polo ralph lauren
air max 90
ralph lauren outlet
ralph lauren polo shirts
air max 90
kate spade outlet
ferragamo outlet
mont blanc pens
swarovski crystal
mulberry bags
nike outlet
puma outlet
canada goose outlet
oakley sunglasses
swarovski outlet
cheap jordans
true religion outlet
cheap nfl jerseys
ray ban sunglasses
tods outlet
true religion jeans
oakley sunglasses
jordan shoes
mont blanc pens
oakley sunglasses
pandora charms
true religion outlet
oakley sunglasses
nike blazer pas cher
nike air max 2015
toms sko
kobe bryant shoes
nfl jersey wholesale
coach outlet
polo outlet
moncler outlet
pandora charms
birkenstock outlet
denver broncos jerseys
canada goose outlet
longchamp bags
michael kors outlet
ugg outlet
ugg outlet
ugg boots
herve leger outlet
polo ralph lauren
true religion jeans
toms sko
coach outlet
christian louboutin shoes
nike sko
mont blanc pens
marc jacobs outlet
michael kors uk
air max uk
swarovski outlet
ray ban sunglasses
birkenstock sandals
ugg boots clearance
coach outlet
jordan shoes
michael kors bags
pandora outlet
basketball shoes
ferragamo outlet
michael kors handbags
ray ban sunglasses
nike shoes
canada goose outlet
burberry outlet
mulberry handbags
coach handbags
coach outlet online
michael kors outlet
ugg outlet
coach factory outlet
salomon chaussures
polo ralph lauren
michael kors outlet
michael kors handbags
nhl jerseys
nike shoes
christian louboutin outlet
canada goose jackets
michael kors outlet
cheap jordans
uggs outlet
true religion jeans
vans shoes
jordan shoes
pandora charms
michael kors
longchamp outlet
canada goose outlet
michael kors outlet
ralph lauren polo shirts
michael kors outlet
christian louboutin outlet
hermes belt
kate spade outlet
adidas outlet store
michael kors handbags
fitflops
nba jerseys
longchamp solde
tory burch outlet
football shirts
hermes outlet
ugg boots clearance
adidas nmd
true religion jeans
nike air max 90
michael kors outlet
christian louboutin shoes
longchamp handbags
christian louboutin shoes
oakley sunglasses
asics shoes
oakley sunglasses
longchamp pas cher
polo outlet
prada handbags
oakley sunglasses
nfl jerseys
pandora outlet
coach outlet
soccer jerseys
chicago blackhawks jerseys
tory burch outlet
oakley sunglasses
cazal sunglasses
ralph lauren polo
nike roshe
ugg cyber monday
michael kors outlet
canada goose outlet
pandora charms
bottega veneta outlet
thomas sabo
polo ralph lauren
true religion jeans
true religion uk
ugg boots
pandora outlet
michael kors outlet
michael kors outlet
fred perry polo shirts
adidas trainers
coach outlet
canada goose outlet
hogan scarpe
nike sko
canada goose outlet
ray ban sunglasses
canada goose jackets
air huarache
moncler outlet
nike foamposite
coach outlet
nike shoes
air max trainers
coach outlet
ugg outlet
longchamp outlet
nike shoes
true religion jeans
ugg outlet
coach outlet
ugg boots
polo outlet
michael kors outlet
coach factory outlet
christian louboutin outlet
coach outlet
nike trainers
canada goose outlet
ugg outlet
michael kors outlet
canada goose outlet
longchamp solde
yeezy boost 350
nfl jerseys
lebron james shoes
ferragamo outlet
reebok outlet store
huaraches shopping
pandora jewelry
kate spade outlet
mulberry handbags
michael kors outlet
canada goose jackets
oakley sunglasses
ed hardy clothing
giuseppe zanotti outlet
dansko shoes
tory burch shoes
nike roshe one
ugg outlet
oakley sunglasses
true religion outlet
polo outlet
oakley sunglasses
canada goose outlet
michael kors handbags
montblanc pens
cheap football shirts
polo ralph lauren
soccer jerseys
christian louboutin outlet
ugg black friday
canada goose jackets
timberland sko
longchamp handbags
pandora jewelry
canada goose outlet
ugg outlet
ferragamo shoes
ray ban sunglasses
canada goose cyber monday
oakley sunglasses
valentino outlet
mulberry outlet
vans sko
oakley sunglasses wholesale
christian louboutin outlet
moncler jackets
ray ban sunglasses
ray ban sunglasses
oakley sunglasses
michael kors outlet
ugg boots clearance
kobe 9
polo ralph lauren
nike trainers
moncler outlet
adidas nmd
cheap jordans
nike air force 1
tory burch outlet
coach factory outlet
fitflops sale clearance
ralph lauren polo
coach outlet
tory burch outlet
true religion jeans
ray ban sunglasses
nike outlet
ecco sale
salomon sko
christian louboutin outlet
ray bans
pandora outlet
nike store uk
michael kors outlet
barbour outlet
nike shoes
michael kors
jordan shoes
jordan shoes
ray ban sunglasses
polo ralph lauren
cheap nfl jerseys
polo shirts
oakley sunglasses
ray ban sunglasses
prada outlet
tory burch outlet
canada goose outlet
coach factory outlet
canada goose outlet
true religion outlet
ralph lauren pas cher
ferragamo outlet
yeezy boost
rayban sunglasses
louboutin shoes
ralph lauren polo
true religion jeans
michael kors outlet
christian louboutin outlet
ugg outlet
moncler jackets
canada goose parka
christian louboutin outlet
canada goose outlet
canada goose jackets
prada sunglasses
ray ban sunglasses
uggs outlet
coach outlet online
coach outlet store online
ugg boots clearance
air huarache
nfl jerseys
polo ralph lauren
coach outlet
coach outlet online
canada goose jackets
ugg outlet
air jordan 4
air max 90
fitflops sale clearance
polo outlet
futbol baratas
tory burch outlet
coach outlet
ray ban sunglasses
ugg outlet
coach outlet canada
soccer shoes
ecco shoes
canada goose jackets
fitflops sale clearance
jordan shoes
oakley sunglasses
nike outlet
nike air max
pandora jewelry
christian louboutin shoes
polo ralph lauren
salomon sko
timberland boots
air max 90
polo ralph lauren
pandora charms
converse shoes
links of london
ralph lauren outlet
adidas uk
reebok trainers
cartier outlet
swarovski outlet
canada goose outlet
mulberry handbags
adidas sko
coach factory outlet
nike trainers
michael kors outlet
polo ralph lauren
longchamp handbags
oakley sunglasses
ugg boots clearance
oakley sunglasses
coach canada
canada goose outlet
michael kors outlet online
cheap jordans
salomon shoes
oakley sunglasses
nike store
longchamp pliage
polo ralph lauren
coach outlet
coach outlet online
cheap snapbacks
puma shoes
uggs
ray ban sunglasses
polo ralph lauren
coach outlet online
cheap mlb jerseys
christian louboutin online
burberry outlet
supreme clothing
christian louboutin uk
ray ban sunglasses
ugg boots
coach outlet online
oakley sunglasses
ray ban sunglasses
pandora charms
canada goose jackets
mulberry handbags
moncler outlet
ugg boots
ugg outlet
ugg outlet
christian louboutin shoes
michael kors outlet online
canada goose outlet
michael kors outlet
oakley sunglasses
ferragamo outlet
michael kors outlet
kate spade outlet
michael kors wallets
kicks nice
michael kors
michael kors outlet
michael kors outlet
pandora outlet
polo ralph lauren
ray ban sunglasses
kate spade outlet
cheap snapbacks
canada goose jackets
kevin durant shoes
canada goose outlet
christian louboutin outlet
oakley sunglasses
mbt shoes
mont blanc pens
coach factory outlet
mulberry bags
fitflops
nfl jerseys wholesale
michael kors outlet
fitflops shoes
coach outlet
uggs outlet
michael kors outlet
true religion jeans
ugg outlet
lacoste soldes
canada goose outlet
michael kors outlet
coach factory outlet
burberry outlet
lakers jerseys
uggs outlet
pandora outlet
20180111caihuali
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> Общие вопросы Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Pоwerеd by рhpВB © 2001, 2005 рhpВB Grouр
Русская поддержка phpBB
Rambler's Top100 Рейтинг@Mail.ru Список форумов BOSSForum.RU