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

Откуда: Запорожье
Сообщений: 54275
Подскажите новичку
В Оракле есть пакеты, и сотни ХП легко интегрировались в них. 30 пакетов по 40 процедур - 1200
В MSSQL такого нет

Как управлять единым большим списком ХП (скажем, те же 1200)?
Чего-то я не понимаю, прошу подсказать.

С уважением, АМ
1 мар 17, 13:47    [20254043]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
А какие у вас сценарии управления-то?
1 мар 17, 13:48    [20254046]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31438
andreymx
Как управлять единым большим списком ХП (скажем, те же 1200)?
Чего-то я не понимаю, прошу подсказать.
Лучше использовать какие то средства разработки, например, Visual Studio
Можно будет группировать процедуры, хранить версии, привязывать изменения к задачам и т.д.
1 мар 17, 13:50    [20254053]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54275
Как управлять таким списком? Как наименовать, чтобы находить нужную.
1 мар 17, 13:50    [20254055]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
iiyama
Member

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

SSDT
1 мар 17, 14:51    [20254343]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
komrad
Member

Откуда:
Сообщений: 5252
andreymx,
есть что-то типа пакетов, но не всем нравится - см ниже

+ скрипт

create proc get_something;1
as
begin
 select getdate() [output]
end
go
create proc get_something;2
as
begin
	select @@version [output]
end 
go

exec get_something;1
go
exec get_something;2
go
drop proc get_something 
go



К сообщению приложен файл. Размер - 29Kb
1 мар 17, 15:12    [20254453]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
komrad,

;1
эту конструкцию ms давно обещает выпилить с корнями. Хотя в 2016 ещё есть )
1 мар 17, 15:14    [20254460]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
komrad,

Это для экстремалов. Индивидуально удалить какую-либо из пронумерованных процедур невозможно.
1 мар 17, 15:38    [20254581]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
komrad
Member

Откуда:
Сообщений: 5252
invm
komrad,

Это для экстремалов. Индивидуально удалить какую-либо из пронумерованных процедур невозможно.


ну так пакет на то и пакет? :)
пакетом добавляем, пакетом удаляем...
1 мар 17, 15:45    [20254610]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54275
TaPaK
komrad,

;1
эту конструкцию ms давно обещает выпилить с корнями. Хотя в 2016 ещё есть )
точка с запятой плюс число?
1 мар 17, 17:58    [20255083]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
o-o
Guest
andreymx
TaPaK
komrad,

;1
эту конструкцию ms давно обещает выпилить с корнями. Хотя в 2016 ещё есть )
точка с запятой плюс число?

да блин же, в гугле набираем CREATE PROCEDURE (Transact-SQL)
CREATE [ OR ALTER ] { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ]   

number

An optional integer that is used to group procedures of the same name.
These grouped procedures can be dropped together by using one DROP PROCEDURE statement.

This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.
1 мар 17, 18:04    [20255099]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
Как управлять единым большим списком ХП
Ну как минимум - давать им вменяемые названия, чтоб сразу было понятно, что она делает.
пример
ReadAll_xxx
ReadOne_xxx
Delete_xxx
Update_xxx
Refresh_xxx
Seek_xx

Хранить скрипты в папках. У нас ок. 3тыс. ХП. 600 файлов.
Все разложено по папкам и файлам с унифицированными названиями.
Не возникает вопрос, в какой папке/файле лежит такая-то ХП.
1 мар 17, 18:07    [20255117]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54275
думаю, эти номера лично мне пользы не принесут
1 мар 17, 18:08    [20255122]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
o-o
Guest
andreymx
думаю, эти номера лично мне пользы не принесут

чтобы получить вменяемый ответ,
надо как минимум задать вменяемый вопрос.
а от вас невозможно добиться, чего же вам надо.
вот спросили
Гавриленко Сергей Алексеевич
А какие у вас сценарии управления-то?

в ответ что?
"Как наименовать, чтобы находить нужную?"
ответ простой, так и именуйте, как собираетесь искать.
вы что хотели, иметь пакет_1 и в нем процы проц001..проц100?
вот так и именуйте
sp_package1_proc001
..
sp_package1_proc100
1 мар 17, 18:13    [20255137]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54275
o-o
andreymx
думаю, эти номера лично мне пользы не принесут

чтобы получить вменяемый ответ,
надо как минимум задать вменяемый вопрос.
а от вас невозможно добиться, чего же вам надо.
вот спросили
Гавриленко Сергей Алексеевич
А какие у вас сценарии управления-то?

в ответ что?
"Как наименовать, чтобы находить нужную?"
ответ простой, так и именуйте, как собираетесь искать.
вы что хотели, иметь пакет_1 и в нем процы проц001..проц100?
вот так и именуйте
sp_package1_proc001
..
sp_package1_proc100
спасибо

понятно, что в таком случае возникает возможность ошибиться в названии процедуры... но будем пользоваться тем, что есть
1 мар 17, 18:18    [20255154]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
o-o
Guest
можно раскидывать по разным схемам.
схеме дать вменяемое имя.
1 мар 17, 18:27    [20255189]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
andreymx,

вам надо любая система управления версиями tfs, git и тд там держите свои скрипты, ветки и тп. А чем деплоить это вопрос ещё более развёрнут :)
1 мар 17, 18:28    [20255190]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
LSV
Как управлять единым большим списком ХП
Ну как минимум - давать им вменяемые названия, чтоб сразу было понятно, что она делает.
пример
ReadAll_xxx
ReadOne_xxx
Delete_xxx
Update_xxx
Refresh_xxx
Seek_xx

Хранить скрипты в папках. У нас ок. 3тыс. ХП. 600 файлов.
Все разложено по папкам и файлам с унифицированными названиями.
Не возникает вопрос, в какой папке/файле лежит такая-то ХП.
А у нас всё в SourceSafe
1 мар 17, 18:36    [20255225]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
iljy
Member

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

понятно, что в таком случае возникает возможность ошибиться в названии процедуры... но будем пользоваться тем, что есть


Ошизеть вывод ... Что вообще значит "ошибиться в названии процедуры"? Опечататься? Так от этого никакие пакеты не помогут. Процедуры перепутать? Названия внятные давайте, в 128 символов вполне можно информативное имя вписать. И уж к "управлению" это точно никакого отношения не имеет, откуда эта манера высокий штиль в каждую дырку пихать?
Если же речь о группировке по предметным областям, то тут правильно про схемы сказали, создавайте сколько надо, еще и управлять (в плане распределения прав) проще будет.
1 мар 17, 18:50    [20255262]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
o-o
можно раскидывать по разным схемам.
схеме дать вменяемое имя.


Это "плохой" совет, т.к. предназначение схем - разграничивать уровни безопасности и определять контекст выполнения, а не услаждать глаз админа красивыми группировками.

Правила именования и фильтры инструмента разработки, в общем-то, решают все указанные проблемы.
1 мар 17, 19:00    [20255298]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
o-o
Guest
Владислав Колосов
o-o
можно раскидывать по разным схемам.
схеме дать вменяемое имя.


Это "плохой" совет, т.к. предназначение схем - разграничивать уровни безопасности и определять контекст выполнения, а не услаждать глаз админа красивыми группировками.

Услаждать глаза?
Это точно ко мне относится?
Что-то больше пишут про схемы, чем безопасность и услада only:
SQL Server 2005 implemented the concept of a database object schema. A schema is a distinct namespace to facilitate the separation, management, and ownership of database objects. It removed the tight coupling of database objects and owners to improve the security administration of database objects.
1 мар 17, 19:28    [20255388]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
o-o,

я не сомневаюсь в Вашей компетенции, но автор - то хочет для "красоты и комфорта".
1 мар 17, 21:53    [20255733]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5975
Единственная фича оракловых пакетов, которой нет, и которая напрямую не воспроизвоизводится в MSSQL - глобальные переменные пакетов, сохраняющие свое состояние на время сессии. Здесь обходятся разными воркароундами - CONTEXT_INFO, временные таблицы, и проч. Есть еще приватные процедуры пакетов, видимые только внутри тела пакета, то это уже для сосвсем лютых эстетов, жить без этого можно прекрасно. Про схемы для разделения по предметным областям выше уже сказали. Этого вполне достаточно для "управления единым большим списком".
2 мар 17, 06:37    [20256115]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
Griffo Proudfoot
Member

Откуда: Zaporizhzha
Сообщений: 62
Сон Веры Павловны
Единственная фича оракловых пакетов, которой нет, и которая напрямую не воспроизвоизводится в MSSQL

не то чтобы это можно было назвать дополнительным функционалом...
но в пакеты принято собирать логически связанные в рамках некой задачи - типы, процедуры, функции, переменные и курсоры (как верно отмечено, переменные и курсоры сохраняют свое состояние в течение сеанса).
это очень здорово в смысле логичности, нагляности и модульности.
когда имеется стопицот функций/процедур - разобраться кто из них к какой задаче относится, задача гораздо более трудоемкая.
если раскидать их по разным веткам в хранилище системы управления версиями - уже лучше, но прозрачности все равно недостает.

Сон Веры Павловны
Есть еще приватные процедуры пакетов, видимые только внутри тела пакета, то это уже для сосвсем лютых эстетов, жить без этого можно прекрасно.

это не эстетство. это нормальное скрытие потенциально небезопасной информации с предоставлением в качестве интерфейса только объявленных в спецификации пакета методов.
2 мар 17, 09:31    [20256303]     Ответить | Цитировать Сообщить модератору
 Re: управление процедурами  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
iap
LSV
пропущено...
Ну как минимум - давать им вменяемые названия, чтоб сразу было понятно, что она делает.
пример
ReadAll_xxx
ReadOne_xxx
Delete_xxx
Update_xxx
Refresh_xxx
Seek_xx

Хранить скрипты в папках. У нас ок. 3тыс. ХП. 600 файлов.
Все разложено по папкам и файлам с унифицированными названиями.
Не возникает вопрос, в какой папке/файле лежит такая-то ХП.
А у нас всё в SourceSafe
Именно для этого все ХП в папках и файлах. И разумеется хранятся в одном из контроллеров версий.
Приходилось сравнивать измененные файлы и поднимать старый код.
Так что хранению в файлах/папках практически нет альтернативы.

Правда иногда все таки бывают непонятки, когда sql-код лежит "на границе" неск.модулей и его предположительное название и место хранения неочевидно. Но это 2-3% кода.
2 мар 17, 10:40    [20256576]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить