Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Редактировать много процедур / 9 сообщений из 9, страница 1 из 1
17.06.2019, 16:56
    #39827368
Badger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Редактировать много процедур
Добрый день.

На базе данных почти семь тысяч хранимых процедур.
Мне нужно исправить 1280. Можно ли открыть для редактирования сразу много процедур, если я пользуюсь SQL Server Management Studio 15?


Поставил я себе еще DBArtisan 17.0.3 но в нем можно выделять несколько процедур кликом с зажатым Ctrl, и потом для всех сделать Extract! Супер! Но это тоже не просто, в глазах уже рябит, т.к. можно кликнуть не по той процедуре, т.к. имена процедур бывают очень похожи. А при скроле можно сбить уже выделенные.

Список процедур очень разношерстный. Поэтому я ищу способ как то устанавливать фильтр и сделать Extract для всех только моих процедур, из моего списка?

Поиск по внутреннему коду процедуры не предлагать, т.к. нужный код встречается и в других процедурах, (не из моего списка).
...
Рейтинг: 0 / 0
17.06.2019, 17:00
    #39827372
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Редактировать много процедур
1280 процедур редактировать руками? O_o
...
Рейтинг: 0 / 0
17.06.2019, 17:13
    #39827382
iiyama
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Редактировать много процедур
Badger,
Можно завести дополнительную схему (Например назвать ее [test] ) и скопировать нужные объекты туда.
...
Рейтинг: 0 / 0
17.06.2019, 17:43
    #39827400
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Редактировать много процедур
Badger Мне нужно исправить 1280.
если речь идет только об изменении названия объектов, то может проще использовать алиасы?
...
Рейтинг: 0 / 0
17.06.2019, 17:52
    #39827402
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Редактировать много процедур
Badger,

Я так понимаю, речь идет о таком сценарии:
1) Получить скрипты процедур
2) Сделать определенные замены по шаблону
3) Убедиться, что все работает

Возможно вам следует снять скрипт всех процедур в БД и сделать поиск и замену. (right click на БД -> tasks -> Generate Scripts )

Затем накатить то, что получилось.

При этом вы должны понимать, как вы это все будете проверять.
...
Рейтинг: 0 / 0
17.06.2019, 17:53
    #39827404
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Редактировать много процедур
SQL2008Badger Мне нужно исправить 1280.
если речь идет только об изменении названия объектов, то может проще использовать алиасы?

Если речь идет только об переименовании объекта, то sp_rename + динамический sql решат все проблемы.


Я подозреваю, что нужно подправить часть стандартного шаблона.


Badger, если это так, то с таким количеством объектов посмотрите в сторону каких-нибудь regex-ов
...
Рейтинг: 0 / 0
17.06.2019, 18:00
    #39827408
Badger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Редактировать много процедур
iiyama, спасибо, ваша идея сработала....

CREATE SCHEMA [Temp] AUTHORIZATION dbo
GO
ALTER SCHEMA [Temp] TRANSFER [dbo].[spMyProc1];
ALTER SCHEMA [Temp] TRANSFER [dbo].[spMyProc2];
...
Рейтинг: 0 / 0
17.06.2019, 18:15
    #39827417
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Редактировать много процедур
Badger,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT DISTINCT
       o.name AS Object_Name,
       o.type_desc, definition
  FROM sys.sql_modules m
       INNER JOIN
       sys.objects o
         ON m.object_id = o.object_id
 --WHERE m.definition Like '%[ABD]%';
...
Рейтинг: 0 / 0
18.06.2019, 12:01
    #39827619
Badger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Редактировать много процедур
SQL2008если речь идет только об изменении названия объектов, то может проще использовать алиасы?Нет речь шла не о переименования объектов, а об однотипном изменение SQL текста внутри процедур. Я понимал, что сделать это можно при помощи DBArtisan который позволяет извлечь любое количество процедур в один текстовый файл для редактирования и дальнейшей компиляции всех измененных процедур разом. Проблема заключалась в том, что нужный список процедур очень разношерстный и большой. И открывать каждую процедуру для изменения по меньшей степени не эффективно, и заняло бы кучу времени. Идея создать для списка процедур отдельную схему, и отфильтровать по этой схеме, мне в голову не приходила. И большое спасибо за идею iiyamaBadger,
Можно завести дополнительную схему (Например назвать ее [test] ) и скопировать нужные объекты туда.
Код: sql
1.
2.
3.
4.
CREATE SCHEMA [Temp] AUTHORIZATION dbo
GO
ALTER SCHEMA [Temp] TRANSFER [dbo].[spMyProc1];
ALTER SCHEMA [Temp] TRANSFER [dbo].[spMyProc2];

что и было сделано и на данный момент задача выполнена. Всем большое спасибо.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Редактировать много процедур / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]