Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Новое на сайте
Новое

SQL Server CREATE ALTER (продолжение 2)

В записанных процедурах параметр блок_кода содержит одну или несколько команд Transact-SQL, занимающих до 128 Мб и ограниченных конструкциями BEGIN и END. Ниже приводятся некоторые правила, касающиеся записанных процедур Microsoft SQL Server.

  • В блоке_кода разрешено использовать большинство существующих инструкций Transact-SQL, однако запрещены конструкции SHOWPLANJTEXTu SET SHOWPLANALL.
  • Некоторые другие команды в записанных процедурах имеют ограниченное применение. Эти команды следующие: ALTER TABLE, CREATE INDEX, CREATE TABLE все инструкции DBCC, DROP TABLE, DROP INDEX, TRUNCATE TABLE и UPDATE STATISTICS.

В SQL Server допустимо отсроченное разрешение имен. Это означает, что записанная процедура компилируется без ошибок, даже если она ссылается на еще не созданный объект. SQL Server создает план выполнения, и ошибка возникает, только когда вызов объекта действительно происходит (например, в записанной процедуре), а объект еще не существует.

Записанные процедуры SQL Server можно легко вкладывать друг в друга. Когда записанная процедура вызывает другую записанную процедуру, системная переменная @@NEST LEVEL увеличивается на единицу. По завершении вызванной процедуры она уменьшается на единицу. Чтобы определить текущий уровень вложенности, используйте в записанной процедуре или в специальном запросе команду SELECT @@NESTLEVEL.

В следующем примере записанная процедура SQL Server генерирует уникальное значение из 22 цифр (на основе элементов системной даты и времени) и возвращает его вызвавшему процессу.

Источник