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

UptoLike

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

ORDER BY au_lname, au_fname
au_id au_lname au_fname
Задание 3. Создать функцию, разбивающую входную строку на подстроки, используя в
качестве разделителя пробелы, выполнив кодирование и тестирование:
1. Кодирование
CREATE FUNCTION Parse (@ String nvarchar (500))
RETURNS @ tabl TABLE
(Number int IDENTITY (1,1) NOT NULL,
Substr nvarchar (30))
AS
BEGIN
DECLARE @ Str1 nvarchar (500), @ Pos int
SET@Str1 = @String
WHILE 1>0
BEGIN
SET@Pos = CHARINDEX(“ ”, @Str1)
IF @POS>0
BEGIN
INSERT INTO @tab1
VALUES (SUBSTRING (@Str1,1,@Pos))
END
ELSE
BEGIN
INSERT INTO @tab1e
VALUES (@Str1)
BREAK
END
END
RETURN
END
2. Тестирование
DECLARE @ Test String nvchar (500)
Set @ TestString = ‘”SQL Server 2000”
SELECT * FROM Parse (@ Test String)
-------------------------------------------------
Number Substr
-------------------------------------------------
1 SQL
2 Server
3 2000
(3 row(s)) affected)
Задание 4. Создать указанные три функции с помощью утилиты Enterprise Manager и
проверить их синтаксис, щелкнув по кнопке Check Syntax (проверить синтаксис), затем сохранить
их как шаблон, щелкнув по кнопке Save as Template (сохранить как шаблон).
Задание 5. Создать и отредактировать функцию, используя шаблон, полученный в
задании 4.
                       ORDER BY au_lname, au_fname
                       au_id au_lname au_fname

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

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

      CREATE FUNCTION Parse (@ String nvarchar (500))
      RETURNS @ tabl TABLE
                              (Number int IDENTITY (1,1) NOT NULL,
        Substr nvarchar (30))
      AS
            BEGIN
                    DECLARE @ Str1 nvarchar (500), @ Pos int
                    SET@Str1 = @String
                    WHILE 1>0
                           BEGIN
                                  SET@Pos = CHARINDEX(“ ”, @Str1)
                                  IF @POS>0
                                         BEGIN
                                              INSERT INTO @tab1
      VALUES (SUBSTRING (@Str1,1,@Pos))
      END
                                              ELSE
                                                     BEGIN
                                                     INSERT INTO @tab1e
      VALUES (@Str1)
                                                           BREAK
                                                     END
                           END
                    RETURN
      END

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

      DECLARE @ Test String nvchar (500)
      Set @ TestString = ‘”SQL Server 2000”
      SELECT * FROM Parse (@ Test String)
      -------------------------------------------------
      Number                     Substr
      -------------------------------------------------
               1                 SQL
               2                 Server
               3                 2000
      (3 row(s)) affected)

       Задание 4. Создать указанные три функции с помощью утилиты Enterprise Manager и
проверить их синтаксис, щелкнув по кнопке Check Syntax (проверить синтаксис), затем сохранить
их как шаблон, щелкнув по кнопке Save as Template (сохранить как шаблон).

      Задание 5. Создать и отредактировать функцию, используя шаблон, полученный в
задании №4.