Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Удалить все Stored Procedures имя которых начинается на какой-либо префикс  [new]
walash
Member

Откуда: Belarus
Сообщений: 10
Собственно вопрос :

Удалить все Stored Procedures имя которых начинается на какой-либо префикс

к примеру в бд есть процедуры с именами:
_______________________________
user_AddUser
user_RemoveUser
. . .. . .. .
group_AddGroup
group_RemoveGroup
. . . . .. .. .. .
______________________________

как к примеру удалить все процедуры, начинающиеся с "user_*"

Думаю из вопроса ясно, что процедур не две, а несколько больше ))

(зачем мне это надо? для автоматизированого тестирования процедур(читай: для юнит тестов))

Заранее спасибо за ответы всем откликнувшимся ))
28 авг 09, 21:06    [7592871]     Ответить | Цитировать Сообщить модератору
 Re: Удалить все Stored Procedures имя которых начинается на какой-либо префикс  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21523
а чем не устраивает перебор sysobjects?
28 авг 09, 21:08    [7592877]     Ответить | Цитировать Сообщить модератору
 Re: Удалить все Stored Procedures имя которых начинается на какой-либо префикс  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
DECLARE @DropProc NVARCHAR(MAX);
SELECT @DropProc=ISNULL(@DropProc,N'DROP PROC ')+CASE WHEN @DropProc IS NULL THEN N''ELSE N','END+[ROUTINE_NAME]
FROM [INFORMATION_SCHEMA].[ROUTINES]
WHERE [ROUTINE_NAME] LIKE N'user[_]%' AND [ROUTINE_TYPE]=N'PROCEDURE';
EXEC(@DropProc);
28 авг 09, 21:28    [7592905]     Ответить | Цитировать Сообщить модератору
 Re: Удалить все Stored Procedures имя которых начинается на какой-либо префикс  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Точнее так:
DECLARE @DropProc NVARCHAR(MAX);
SELECT @DropProc=ISNULL(@DropProc,N'DROP PROC ')+CASE WHEN @DropProc IS NULL THEN N''ELSE N','END+QUOTENAME([ROUTINE_SCHEMA])+N'.'+QUOTENAME([ROUTINE_NAME])
FROM [INFORMATION_SCHEMA].[ROUTINES]
WHERE [ROUTINE_NAME] LIKE N'user[_]%' AND [ROUTINE_TYPE]=N'PROCEDURE';
EXEC(@DropProc);
28 авг 09, 21:30    [7592908]     Ответить | Цитировать Сообщить модератору
 Re: Удалить все Stored Procedures имя которых начинается на какой-либо префикс  [new]
walash
Member

Откуда: Belarus
Сообщений: 10
Блиинн, классно, я тоже хочу так хорошо знать SQL

Большое большое спасибо!!!
31 авг 09, 17:54    [7599742]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить