Частичный синтаксис для создания хранимой процедуры
Введение
Синтаксис Создания Хранимых Процедур
Вы создаете хранимые процедуры при использовании оператора CREATE PROCEDURE. Хранимые процедуры могут быть созданы только в текущей базе данных — за исключением временной хранимой процедуры, которая всегда создается в базе данныхtempdb. Создание хранимой процедуры подобна созданию представления. Сначала напишите и проверьте операторы Transact-SQL, которые Вы хотите включить в хранимую процедуру. Тогда, если Вы получаете ожидаемые результаты, создайте хранимую процедуру.
Оператор CREATE PROCEDURE содержит много возможных опций, как показано в следующем частичном синтаксисе.
Для получения дополнительной информации о синтаксисе CREATE PROCEDURE, см. "CREATE PROCEDURE (Transact-SQL)” в SQL Server Books Online.
Следующий пример показывает, как Вы можете создать простую хранимую процедуру, возвращающую набор строк всех продуктов, производство которых занимает больше чем один день.
CREATE PROC Production.LongLeadProducts
AS
SELECT Name, ProductNumber
FROM Production.Product
WHERE DaysToManufacture >= 1
GO
Предыдущий пример создает процедуру по имени LongLeadProducts в схеме Production. Команда GO включена, чтобы подчеркнуть тот факт, что операторы CREATE PROCEDURE должны быть объявлены в пределах одного пакета.
Следующий пример показывает, как вызвать хранимую процедуруLongLeadProducts.
EXEC Production.LongLeadProducts
Следуйте рекомендациям, когда Вы создаете хранимые процедуры:
■ Квалифицируйте имена объектов в хранимой процедуре с соответствующим названием схемы. Это гарантирует то, что таблицы, представления, или другие объекты из различных схем будут доступны в данной хранимой процедуре. Если имя объекта не квалифицировано, то будет принята по умолчанию схема хранимой процедуры.
■ Проектируйте каждую хранимую процедуру для выполнения одной задачи.
■ Создавайте, тестируйте, и отлаживайте Вашу хранимую процедуру на сервере, а затем проверьте ее на клиенте.
■ Избегайте использовать префиксsp_, при именовании локальных хранимых процедур для различения их от системных хранимых процедур. Другая причина избегать префикса sp_для хранимых процедур в своей базе данных - избежать ненужных поисков в базе данных master. Когда вызывается хранимая процедура с именем, начинающимся с sp_,то SQL Server ищет в базе данных master прежде, чем будет искать в исходной базе данных.
■ Использование те же самые параметры настройки подключения для всех хранимых процедур. SQL Server сохраняет параметры настройки и SET QUOTED_IDENTIFIER и опции SET ANSI_NULLS когда хранимая процедура создается или изменяется. Эти оригинальные параметры настройки используются, когда выполняется хранимая процедура. Поэтому, любые параметры настройки клиентского сеанса для этих опций SET игнорируются во время выполнения хранимой процедуры.
■ Минимизируйте использование временных хранимых процедур, чтобы избежать заполнения системных таблиц в tempdb, эта ситуация может неблагоприятно отразиться на производительности.