Дело в том, что названия объектов уточняются во время выполнения процедуры. Если название таблицы marytab не расширить, то при выполнении процедуры пользователем c именем “Джон” (john), SQL Сервер будет искать таблицу marytab, владельцем которой является Джон. В предыдущем примере было показано правильное использование этого правила. SQL Серверу было сообщено, что нужно искать таблицу marytab, владельцем которой является Мэри.
Удаление сохраненных процедур
Сохраненные процедуры удаляются с помощью команды drop procedure(удалить процедуру). Синтаксис этой команды выглядит следующим образом:
drop procedure [владелец.]название_процедуры
[, [владелец.]название_процедуры] ...
Если сохраненная процедура, которая удаляется, вызывает другую сохраненную процедуру, то SQL Сервер выдает сообщение об ошибке. Однако, если создать новую процедуру с таким же названием вместо удаленной процедуры, то вызывающие ее процедуры будут успешно выполняться.
Группа процедур, т.е. несколько процедур с одинаковыми названиями, но с разными числовыми суффиксами, удаляются одним оператором drop procedure. Процедуры, объединенные в группу, не могут быть удалены независимо друг от друга.
Изменение названий сохраненных процедур
Сохраненная процедура может быть переименована с помощью системной процедуры sp_rename. Синтаксис вызова этой процедуры выглядит следующим образом:
sp_rename название_объекта, новое_название
Например, чтобы процедуру с названием showall переименовать на countall нужно выполнить следующую команду: