MS SQL-Server 2000. Сивохин А.В. - 51 стр.

UptoLike

Составители: 

В SQL Server 2000 можно создавать и так называемые временные хранимые процедуры в
базе данных tempdb экземпляра сервера, которые существуют лишь некоторое время, после чего
автоматически уничтожаются сервером. Они бывают локальными и глобальными. Локальные
хранимые процедуры должны иметь имя, начинающееся с символа #, и могут быть вызваны
только из того соединения, в котором они были созданы. Они автоматически удаляются при
отключении пользователя, перезапуске или остановке сервера. Глобальные хранимые процедуры
должны иметь имя, начинающееся с символов ##, и доступны для любых соединений с
экземпляром сервера, на котором они были созданы. Они удаляются либо при закрытии
соединения, в контексте которого они были созданы, либо автоматическипри перезапуске или
остановке сервера.
Функции и хранимые процедуры могут быть вызваны клиентскими программами, другими
функциями или хранимыми процедурами, а также триггерами. В любом случае необходимо
указать имя функции или хранимой процедуры и список аргументов, которые сопоставляются
параметрам соответствующей функции или хранимой процедуры при этом типы аргументов и
параметров должны совпадать или допускать автоматические преобразования типов. Если для
некоторого параметра задано значение по умолчанию и это значение подходит для данного
вызова, то соответствующий аргумент может быть опущен. Поскольку функция возвращает
значение, она используется в качестве операнда некоторого выражения в виде вызова функций,
состоящего из имени этой функции и списка аргументов, заключенного в круглые скобки, при
этом в качестве аргументов могут быть любые выражения языка Transact – SQL, дающие в
результате значения требуемых типов. Аргументы в вызове функции отделяются запятыми. Если
список аргументов пуст, то круглые скобки после имени функции, как правило, задаются.
Исключения составляют некоторые системные функции, для которых круглые скобки не
задаются, когда нет аргументов. Хранимые процедуры могут вызываться только командой
EXECUTE, или сокращенно EXEC. За этой командой должны быть указаны имя процедуры и
через пробел список аргументов, если вызывается процедура с параметрами. Аргументы
разделяются запятой. Если для параметра задано значение по умолчанию, то аргумент либо совсем
не задается (в конце списка), либо используется слово DEFAULT(в середине списка). Процедура
может возвращать результаты только через параметры с ключевым словом OUTPUT, при этом и
аргумент должен быть задан с таким же ключевым словом.
Создание, изменение и удаление функций и хранимых процедур производится
соответственно командами: CREATE FUNCTION, CREATE PROCEDURE , ALTER FUNCTION,
ALTER PROCEDURE, DROP FUNCTION, DROP PROCEDURE. При создании функции
указывается тип возвращаемого значения и в теле функции обязательно задается команда
RETURN, за которой следует выражения для вычисления возвращаемого значения. В теле
процедуры использование команды RETURN(конечно, без последующего выражения) вовсе не
обязательно. Когда этой команды нет, выход из процедуры будет происходить после исполнения
последней команды процедуры.
Тело, как функции, так и хранимой процедуры начинается ключевым словом AS.
Поскольку каждая из них храниться как отдельный объект, то для указания конца тела не
требуется записывать какое-либо специальное ключевое слово или знак. За командами создания
функции или хранимой процедуры перечисляются имена параметров, начинающиеся с символа @,
и их типы, а также важно значение по умолчанию. Для функции этот список заключается в
круглые скобки, после которых записывается ключевое слово RETURNS (возвращает) и тип
возвращаемого значения. Для хранимой процедуры круглые скобки не используются, и задавать
тип возвращаемого значение не требуется. Для тела функции часто используют ключевое слово
begin после ключевого слова as и ключевое слово end в конце тела. Дополнительные опции
функции или хранимой процедуры задаются ключевым словом with до начала тела. Например,
опция encryption позволяет зашифровать исходный текст функции или хранимой процедуры и
сделать его, таким образом, нечитабельным. Опция функции schemabinding запрещает
производить какие-либо изменения в объектах базы данных. Опция хранимой процедуры
recompile обеспечивает повторную компиляцию исходного текста процедуры при каждом её
вызове. Наконец, опция FOR REPLICATION указывает, что данная хранимая процедура будет
использоваться при репликации данных. При создании однотипных хранимых процедур можно
использовать для них одно групповое имя. В этом случае конкретная процедура в группе
       В SQL Server 2000 можно создавать и так называемые временные хранимые процедуры в
базе данных tempdb экземпляра сервера, которые существуют лишь некоторое время, после чего
автоматически уничтожаются сервером. Они бывают локальными и глобальными. Локальные
хранимые процедуры должны иметь имя, начинающееся с символа #, и могут быть вызваны
только из того соединения, в котором они были созданы. Они автоматически удаляются при
отключении пользователя, перезапуске или остановке сервера. Глобальные хранимые процедуры
должны иметь имя, начинающееся с символов ##, и доступны для любых соединений с
экземпляром сервера, на котором они были созданы. Они удаляются либо при закрытии
соединения, в контексте которого они были созданы, либо автоматически – при перезапуске или
остановке сервера.
       Функции и хранимые процедуры могут быть вызваны клиентскими программами, другими
функциями или хранимыми процедурами, а также триггерами. В любом случае необходимо
указать имя функции или хранимой процедуры и список аргументов, которые сопоставляются
параметрам соответствующей функции или хранимой процедуры при этом типы аргументов и
параметров должны совпадать или допускать автоматические преобразования типов. Если для
некоторого параметра задано значение по умолчанию и это значение подходит для данного
вызова, то соответствующий аргумент может быть опущен. Поскольку функция возвращает
значение, она используется в качестве операнда некоторого выражения в виде вызова функций,
состоящего из имени этой функции и списка аргументов, заключенного в круглые скобки, при
этом в качестве аргументов могут быть любые выражения языка Transact – SQL, дающие в
результате значения требуемых типов. Аргументы в вызове функции отделяются запятыми. Если
список аргументов пуст, то круглые скобки после имени функции, как правило, задаются.
Исключения составляют некоторые системные функции, для которых круглые скобки не
задаются, когда нет аргументов. Хранимые процедуры могут вызываться только командой
EXECUTE, или сокращенно EXEC. За этой командой должны быть указаны имя процедуры и
через пробел список аргументов, если вызывается процедура с параметрами. Аргументы
разделяются запятой. Если для параметра задано значение по умолчанию, то аргумент либо совсем
не задается (в конце списка), либо используется слово DEFAULT(в середине списка). Процедура
может возвращать результаты только через параметры с ключевым словом OUTPUT, при этом и
аргумент должен быть задан с таким же ключевым словом.
       Создание, изменение и удаление функций и хранимых процедур производится
соответственно командами: CREATE FUNCTION, CREATE PROCEDURE , ALTER FUNCTION,
ALTER PROCEDURE, DROP FUNCTION, DROP PROCEDURE. При создании функции
указывается тип возвращаемого значения и в теле функции обязательно задается команда
RETURN, за которой следует выражения для вычисления возвращаемого значения. В теле
процедуры использование команды RETURN(конечно, без последующего выражения) вовсе не
обязательно. Когда этой команды нет, выход из процедуры будет происходить после исполнения
последней команды процедуры.
       Тело, как функции, так и хранимой процедуры начинается ключевым словом AS.
Поскольку каждая из них храниться как отдельный объект, то для указания конца тела не
требуется записывать какое-либо специальное ключевое слово или знак. За командами создания
функции или хранимой процедуры перечисляются имена параметров, начинающиеся с символа @,
и их типы, а также важно значение по умолчанию. Для функции этот список заключается в
круглые скобки, после которых записывается ключевое слово RETURNS (возвращает) и тип
возвращаемого значения. Для хранимой процедуры круглые скобки не используются, и задавать
тип возвращаемого значение не требуется. Для тела функции часто используют ключевое слово
begin после ключевого слова as и ключевое слово end в конце тела. Дополнительные опции
функции или хранимой процедуры задаются ключевым словом with до начала тела. Например,
опция encryption позволяет зашифровать исходный текст функции или хранимой процедуры и
сделать его, таким образом, нечитабельным. Опция функции            schemabinding запрещает
производить какие-либо изменения в объектах базы данных. Опция хранимой процедуры
recompile обеспечивает повторную компиляцию исходного текста процедуры при каждом её
вызове. Наконец, опция FOR REPLICATION указывает, что данная хранимая процедура будет
использоваться при репликации данных. При создании однотипных хранимых процедур можно
использовать для них одно групповое имя. В этом случае конкретная процедура в группе