Включить/отключить хранимые процедуры

Я работаю с большой группой хранимых процедур (около 300) в SQL Server 2012 Web Edition, и мне нужно включать/отключать некоторые хранимые процедуры в разное время.

Есть ли способ создать подпапку в разделе «Программируемость» в SQL Server Management Studio для размещения неактивных хранимых процедур? Если нет, есть ли возможность включить/отключить определенную хранимую процедуру, не удаляя ее из базы данных? Поскольку мне часто нужно включать / отключать, я бы предпочел не удалять процедуру, а затем перескриптовать ее, когда это необходимо?


person webworm    schedule 16.04.2014    source источник
comment
Вы просто хотите убрать их с дороги или хотите, чтобы их было невозможно выполнить?   -  person David Atkinson    schedule 16.04.2014
comment
Больше всего в стороне, но легко восстанавливается. Например, если бы я мог создать папку с надписью «отключено».   -  person webworm    schedule 16.04.2014


Ответы (5)


Создайте эти хранимые процедуры в отдельной схеме (используйте CREATE SCHEMA), а затем ПРЕДОСТАВЬТЕ или ОТЗЫВАЙТЕ право на выполнение всех хранимых процедур в этой схеме ответственным пользователям.

person bjnr    schedule 16.04.2014

В качестве предложения вы можете иметь контракт в именовании, например, spTest включен, а spTest_Disabled - это то же самое, что и отключено, поэтому вы можете написать другую хранимую процедуру с этой сигнатурой spChangeSpStatus(spName,state) этот sp использует sp_rename для переименования процедуры в новую, (я имею в виду добавив _disabled к его имени или убрав _disabled из имени)

надеюсь, это поможет

person Reza    schedule 16.04.2014

Вы не можете создать подпапку, но можете создать другую схему. Назовите его как хотите (скажем, inactive) и установите для него соответствующие разрешения.

Затем напишите скрипт для перемещения объектов из рабочей схемы (скажем, dbo) в inactive:

alter schema inactive transfer dbo.proc
person dean    schedule 17.04.2014

Существует недорогой инструмент под названием SQLTreeo, который позволяет создавать папки в обозревателе объектов. Если я правильно помню, есть два режима работы: один позволяет каждому пользователю с инструментом иметь свою индивидуальную структуру папок, а другой навязывает общую структуру папок на всех машинах, на которых установлен SQLTreeo.

person David Atkinson    schedule 17.04.2014

Создайте новую таблицу для управления своим SP, и в каждом SP просто добавьте IF, который всегда запрашивает таблицу, созданную dbo.ManagerSP, если этот sp Active = true, если true, SP запускается, если нет, не запускается ,,

И при этом для управления всеми вашими SP достаточно запустить ОБНОВЛЕНИЕ активного статуса в dbo.ManagerSP

person Witchman    schedule 06.08.2015