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

UptoLike

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

идентифицируется своим номером, который должен задаваться как при создании, так и при вызове
процедуры сразу же после группового имени и отделяться от него точкой с запятой.
Функции и хранимые процедуры можно создавать также с помощью Enterprise Manager, а
хранимые процедуры еще и с помощью мастера Create Stored Procedure Wisard.
В SQL Server 2000 можно создавать функции трех классов:
Scalar – возвращают обычное скалярное значение;
Inline – возвращают таблицу динамической структуры, создаваемую единственной
командой тела функции SELECT;
Multi – statement – возвращает обычную таблицу заданной структуры, при этом количество
команд в теле функции не ограничивается.
Задание 1. Создать функцию для выполнения четырех арифметических операций “+”, “-
”, “*” и “/” над целыми операндами типа bigint, выполнив кодирование и проверку:
1. Кодирование
CREATE FUNCTION Calculator
(@ Opd1 bigint,
@ Opd2 bigint,
@ Oprt char(1) = “*”)
RETURNS bigint
AS
BEGINT
DECLARE @ Result bigint
SET @ Result =
CASE @ Oprt
WHEN “+” THEN @ Opd1 + @ Opd2
WHEN “-” THEN @ Opd1 - @ Opd2
WHEN “*” THEN @ Opd1 * @ Opd2
WHEN “/” THEN @ Opd1 / @ Opd2
ELSE 0
END
Return @ Result
END
2. Тестирование
SELECT dbo.Calculator(4,5, ‘+’),
dbo. Calculator(3,7, ‘*’) – dbo.Calculator(64,4,‘/’)*2.
9 -11
(1 row (s) affected)
Задание 2. Создать функцию, возвращающую таблицу с динамическим набором
столбцов, выполнив кодирование и тестирование:
1. Кодирование
CREATE FUNCTION DYNTAB (@ State char(2))
RETURNS Table
AS
RETURNS SELECT au_id, au_lname, au_fname FROM authors
WHERE state = @ state
2. Проверка
SELECT * FROM DYNTAB (“CA”)
идентифицируется своим номером, который должен задаваться как при создании, так и при вызове
процедуры сразу же после группового имени и отделяться от него точкой с запятой.
      Функции и хранимые процедуры можно создавать также с помощью Enterprise Manager, а
хранимые процедуры еще и с помощью мастера Create Stored Procedure Wisard.
      В SQL Server 2000 можно создавать функции трех классов:
      Scalar – возвращают обычное скалярное значение;
      Inline – возвращают таблицу динамической структуры, создаваемую единственной
командой тела функции SELECT;
      Multi – statement – возвращает обычную таблицу заданной структуры, при этом количество
команд в теле функции не ограничивается.

        Задание 1. Создать функцию для выполнения четырех арифметических операций “+”, “-
”, “*” и “/” над целыми операндами типа bigint, выполнив кодирование и проверку:

      1. Кодирование

      CREATE FUNCTION Calculator
                   (@ Opd1 bigint,
      @ Opd2 bigint,
      @ Oprt char(1) = “*”)
      RETURNS bigint
      AS
             BEGINT
                   DECLARE @ Result bigint
                   SET @ Result =
                          CASE @ Oprt
                                WHEN “+” THEN @ Opd1 + @ Opd2
                                WHEN “-” THEN @ Opd1 - @ Opd2
                                WHEN “*” THEN @ Opd1 * @ Opd2
                                WHEN “/” THEN @ Opd1 / @ Opd2
                                ELSE 0
      END
      Return @ Result
      END

      2. Тестирование

      SELECT dbo.Calculator(4,5, ‘+’),
                   dbo. Calculator(3,7, ‘*’) – dbo.Calculator(64,4,‘/’)*2.
      9              -11
      (1 row (s) affected)

      Задание 2. Создать функцию, возвращающую таблицу с динамическим набором
столбцов, выполнив кодирование и тестирование:

      1. Кодирование

      CREATE FUNCTION DYNTAB (@ State char(2))
      RETURNS Table
      AS
      RETURNS SELECT au_id, au_lname, au_fname FROM authors
                WHERE state = @ state

      2. Проверка

      SELECT * FROM DYNTAB (“CA”)