игра брюс 2048
Главная / Базы данных / Программирование в Microsoft SQL Server 2000 / Тест 30

Программирование в Microsoft SQL Server 2000 - тест 30

Упражнение 1:
Номер 1
SQL Server 2000 поддерживает различные типы пользовательских функций:

Ответ:

 (1) векторные 

 (2) скалярные 

 (3) табличные 

 (4) интегральные 

 (5) разделяемые 


Номер 2
Функция является детерминированной, если:

Ответ:

 (1) она может возвращать различные значения при одном и том же заданном входном значении 

 (2) при одном и том же заданном входном значении она всегда возвращает один и тот же результат 

 (3) при различных входных значениях она всегда возвращает один и тот же результат 


Номер 3
Функция является недетерминированной, если:

Ответ:

 (1) она может возвращать различные значения при одном и том же заданном входном значении 

 (2) при различных входных значениях она всегда возвращает один и тот же результат 

 (3) при одном и том же заданном входном значении она всегда возвращает один и тот же результат 


Упражнение 2:
Номер 1
Скалярные пользовательские функции характеризуются тем, что:

Ответ:

 (1) объединяют множество результатов в одну строку 

 (2) возвращают таблицу и не заменяют хранимые процедуры или представления, но в определенных ситуациях они могут предоставить более широкие возможности, которые трудно реализовать с помощью этих объектов 

 (3) возвращают скалярный (однозначный) результат, такой как строка или число 


Номер 2
Табличные пользовательские функции характеризуются тем, что:

Ответ:

 (1) возвращают скалярный (однозначный) результат, такой как строка или число 

 (2) возвращают таблицу и не заменяют хранимые процедуры или представления, но в определенных ситуациях они могут предоставить более широкие возможности, которые трудно реализовать с помощью этих объектов 

 (3) объединяют множество результатов в одну строку 


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

Ответ:

 (1) скалярные пользовательские функции возвращают скалярный (однозначный) результат, такой как строка или число 

 (2) табличные пользовательские функции возвращают скалярный (однозначный) результат, такой как строка или число 

 (3) скалярные пользовательские функции возвращают таблицу и не заменяют хранимые процедуры или представления, но в определенных ситуациях они могут предоставить более широкие возможности, которые трудно реализовать с помощью этих объектов 


Упражнение 3:
Номер 1
Синтаксис оператора CREATE FUNCTION имеет вид:

Ответ:

 (1) CREATE FUNCTION [ owner_name. ] function_name ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] ) RETURNS scalar_return_data_type BEGIN function_body RETURN scalar_expression END  

 (2) CREATE FUNCTION [ owner_name. ] function_name ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] ) { RETURNS scalar_return_data_type } { WITH < function_option > [ [,] ...n] } { AS } BEGIN function_body RETURN scalar_expression END  

 (3) CREATE FUNCTION [ owner_name. ] function_name ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] ) RETURNS scalar_return_data_type [ WITH < function_option > [ [,] ...n] ] [ AS ] BEGIN function_body RETURN scalar_expression END  


Номер 2
Синтаксис оператора CREATE FUNCTION имеет вид:

Ответ:

 (1) CREATE FUNCTION [ owner_name. ] function_name ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] ) RETURNS scalar_return_data_type BEGIN function_body RETURN scalar_expression END  

 (2) CREATE FUNCTION [ owner_name. ] function_name ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] ) RETURNS scalar_return_data_type [ WITH < function_option > [ [,] ...n] ] [ AS ] BEGIN function_body RETURN scalar_expression END  

 (3) CREATE FUNCTION [ owner_name. ] function_name ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] ) { RETURNS scalar_return_data_type } { WITH < function_option > [ [,] ...n] } { AS } BEGIN function_body RETURN scalar_expression END  


Номер 3
Синтаксис оператора CREATE FUNCTION имеет вид:

Ответ:

 (1) CREATE FUNCTION [ owner_name. ] function_name ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] ) RETURNS scalar_return_data_type [ WITH < function_option > [ [,] ...n] ] [ AS ] BEGIN function_body RETURN scalar_expression END  

 (2) CREATE FUNCTION [ owner_name. ] function_name ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] ) { RETURNS scalar_return_data_type } { WITH < function_option > [ [,] ...n] } { AS } BEGIN function_body RETURN scalar_expression END  

 (3) CREATE FUNCTION [ owner_name. ] function_name ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] ) RETURNS scalar_return_data_type BEGIN function_body RETURN scalar_expression END  


Упражнение 4:
Номер 1

CREATE FUNCTION CustWithDiscount
  ( @MinDiscount DEC( 5, 3 ) ) 
  RETURNS @CustWithDiscountTable TABLE ( 
    ( CustID INT NOT NULL,
      CustName CHAR( 30 ) NOT NULL, 
      CustDisc DEC( 5, 3 ) NULL, 
      PRIMARY KEY( CustID ) ) 
BEGIN
  INSERT INTO @CustWithDiscountTable
    SELECT CustId, Name, CAST( Discount AS VARCHAR( 7 ) )
    FROM Customer
    WHERE Discount >= @MinDiscount 
  RETURN
END
    
Данный сценарий выполняет действия:
    

Ответ:

 (1) создается функция CustWithDiscount. В многострочной табличной пользовательской функции предложение RETURNS определяет локальную переменную специального типа table. Объявление этой переменной содержит определения столбцов и необязательные определения ограничений первичного ключа, ограничений уникальности и ограничений на значения. В теле функции могут использоваться инструкция INSERT, модифицирующие данные таблицы, определяемой этой переменой. При выполнении инструкции RETURN текущее содержимое таблицы возвращается вызывающей программе как значение функции 

 (2) создается функция CustWithDiscount. В многострочной табличной пользовательской функции предложение RETURNS определяет локальную переменную специального типа table. Объявление этой переменной содержит определения столбцов и необязательные определения ограничений первичного ключа, ограничений уникальности и ограничений на значения. В теле функции могут использоваться инструкция INSERT, модифицирующие данные таблицы, определяемой этой переменой. При выполнении инструкции RETURN текущее содержимое таблицы возвращается вызывающей программе КАК НАБОР ОДНОСВЯЗАННЫХ ТАБЛИЦ 

 (3) создается функция CustWithDiscount. В многострочной табличной пользовательской функции предложение RETURNS определяет локальную переменную специального типа table. Объявление этой переменной содержит определения столбцов и необязательные определения ограничений первичного ключа, ограничений уникальности и ограничений на значения. В теле функции могут использоваться инструкции INSERT, UPDATE и DELETE, модифицирующие данные таблицы, определяемой этой переменой. При выполнении инструкции RETURN текущее содержимое таблицы возвращается вызывающей программе как значение функции 


Номер 2

CREATE FUNCTION CustWithDiscount 
  ( @MinDiscount DEC( 5, 3 ) ) 
  RETURNS @CustWithDiscountTable TABLE ( 
    ( CustID INT NOT NULL,
      CustName CHAR( 30 ) NOT NULL, 
      CustDisc DEC( 5, 3 ) NULL, 
      PRIMARY KEY( CustID ) ) 
BEGIN
  INSERT INTO @CustWithDiscountTable
    SELECT CustId, Name, CAST( Discount AS VARCHAR( 7 ) )
    FROM Customer
    WHERE Discount >= @MinDiscount 
  RETURN
END
    
Данный сценарий выполняет действия:
    

Ответ:

 (1) создается функция CustWithDiscount. В многострочной табличной пользовательской функции предложение RETURNS определяет локальную переменную специального типа table. Объявление этой переменной содержит определения столбцов и необязательные определения ограничений первичного ключа, ограничений уникальности и ограничений на значения. В теле функции могут использоваться инструкция INSERT, модифицирующие данные таблицы, определяемой этой переменой. При выполнении инструкции RETURN текущее содержимое таблицы возвращается вызывающей программе КАК НАБОР ОДНОСВЯЗАННЫХ ТАБЛИЦ 

 (2) создается функция CustWithDiscount. В многострочной табличной пользовательской функции предложение RETURNS определяет локальную переменную специального типа table. Объявление этой переменной содержит определения столбцов и необязательные определения ограничений первичного ключа, ограничений уникальности и ограничений на значения. В теле функции могут использоваться инструкции INSERT, UPDATE и DELETE, модифицирующие данные таблицы, определяемой этой переменой. При выполнении инструкции RETURN текущее содержимое таблицы возвращается вызывающей программе как значение функции 

 (3) создается функция CustWithDiscount. В многострочной табличной пользовательской функции предложение RETURNS определяет локальную переменную специального типа table. Объявление этой переменной содержит определения столбцов и необязательные определения ограничений первичного ключа, ограничений уникальности и ограничений на значения. В теле функции могут использоваться инструкция INSERT, модифицирующие данные таблицы, определяемой этой переменой. При выполнении инструкции RETURN текущее содержимое таблицы возвращается вызывающей программе как значение функции 


Номер 3

CREATE FUNCTION CustWithDiscount 
  ( @MinDiscount DEC( 5, 3 ) ) 
  RETURNS @CustWithDiscountTable TABLE ( 
    ( CustID INT NOT NULL,
      CustName CHAR( 30 ) NOT NULL, 
      CustDisc DEC( 5, 3 ) NULL, 
      PRIMARY KEY( CustID ) ) 
BEGIN
  INSERT INTO @CustWithDiscountTable
    SELECT CustId, Name, CAST( Discount AS VARCHAR( 7 ) )
    FROM Customer
    WHERE Discount >= @MinDiscount 
  RETURN
END
    
Данный сценарий выполняет действия:
    

Ответ:

 (1) создается функция CustWithDiscount. В многострочной табличной пользовательской функции предложение RETURNS определяет локальную переменную специального типа table. Объявление этой переменной содержит определения столбцов и необязательные определения ограничений первичного ключа, ограничений уникальности и ограничений на значения. В теле функции могут использоваться инструкции INSERT, UPDATE и DELETE, модифицирующие данные таблицы, определяемой этой переменой. При выполнении инструкции RETURN текущее содержимое таблицы возвращается вызывающей программе как значение функции 

 (2) создается функция CustWithDiscount. В многострочной табличной пользовательской функции предложение RETURNS определяет локальную переменную специального типа table. Объявление этой переменной содержит определения столбцов и необязательные определения ограничений первичного ключа, ограничений уникальности и ограничений на значения. В теле функции могут использоваться инструкция INSERT, модифицирующие данные таблицы, определяемой этой переменой. При выполнении инструкции RETURN текущее содержимое таблицы возвращается вызывающей программе как значение функции 

 (3) создается функция CustWithDiscount. В многострочной табличной пользовательской функции предложение RETURNS определяет локальную переменную специального типа table. Объявление этой переменной содержит определения столбцов и необязательные определения ограничений первичного ключа, ограничений уникальности и ограничений на значения. В теле функции могут использоваться инструкция INSERT, модифицирующие данные таблицы, определяемой этой переменой. При выполнении инструкции RETURN текущее содержимое таблицы возвращается вызывающей программе КАК НАБОР ОДНОСВЯЗАННЫХ ТАБЛИЦ 


Упражнение 5:
Номер 1
Оператор CREATE FUNCTION поддерживает создание различных типов табличных функций:

Ответ:

 (1) объединяющих 

 (2) дискретных 

 (3) подставляемых 

 (4) многоисполняемых 

 (5) многооператорных 


Номер 2
Синтаксис оператора CREATE FUNCTION для подставляемой табличной функции имеет вид:

Ответ:

 (1) CREATE FUNCTION имя_функции (список_параметров) RETURNS @локальная_табличная_переменная TABLE (определение_таблицы) AS BEGIN операторы_tsql RETURN END  

 (2) CREATE FUNCTION имя_функции (список_параметров) RETURNS таблица AS RETURN (оператор_выборки)  

 (3) CREATE FUNCTION [ owner_name. ] function_name ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] ) RETURNS scalar_return_data_type [ WITH < function_option > [ [,] ...n] ] [ AS ] BEGIN function_body RETURN scalar_expression END  


Номер 3
Синтаксис оператора CREATE FUNCTION для для многооператорной табличной функции имеет вид:

Ответ:

 (1) CREATE FUNCTION имя_функции (список_параметров) RETURNS @локальная_табличная_переменная TABLE (определение_таблицы) AS BEGIN операторы_tsql RETURN END  

 (2) CREATE FUNCTION [ owner_name. ] function_name ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] ) RETURNS scalar_return_data_type WITH < function_option > [ [,] ...n] BEGIN function_body RETURN scalar_expression END  

 (3) CREATE FUNCTION имя_функции (список_параметров) RETURNS таблица AS RETURN (оператор_выборки)  


Упражнение 6:
Номер 1
Синтаксис вызова скалярных функций имеет вид:

Ответ:

 (1) имя_владельца.имя_функции(список_параметров, список возвращаемых значений)  

 (2) имя_функции([список_параметров])  

 (3) имя_владельца.имя_функции([список_параметров])  


Номер 2
Синтаксис для вызова табличных пользовательских функций имеет вид:

Ответ:

 (1) имя_владельца.имя_функции(список_параметров, список возвращаемых значений)  

 (2) имя_функции([список_параметров])  

 (3) имя_владельца.имя_функции([список_параметров])  


Номер 3
Синтаксис оператора EXECUTE для скалярной функции имеет вид:

Ответ:

 (1) EXECUTE @возвращаемое_значение = имя_функции(список_параметров)  

 (2) EXECUTE @возвращаемое_значение = имя_функции(имя_владельца.имя_функции([список_параметров]))  

 (3) EXECUTE @возвращаемое_значение = имя_функции(имя_владельца([список_параметров]))  


Упражнение 7:
Номер 1

CREATE FUNCTION CustDiscount
  ( @CustId INT ) 
  RETURNS DEC( 5, 3 )
BEGIN
  DECLARE @Discount DEC( 5, 3 ) 
  SET @Discount =
    ( SELECT Discount 
      FROM Customer 
      WHERE CustId = @CustId ) 
  RETURN @Discount 
END
    
Данный сценарий выполняет действия:
    

Ответ:

 (1) создается функция CustDiscount, определяется имя выходной переменной - DEC( 5, 3 ). Возвращает переменную @Discount, т.е. скидку определенного клиента 

 (2) создается функция CustDiscount, определяется имя и тип выходной переменной - DEC( 5, 3 ). Возвращает переменную @CustId, т.е. Id определенного клиента 

 (3) создается функция CustDiscount, определяется тип выходного параметра - DEC( 5, 3 ). Возвращает переменную @Discount, т.е. скидку определенного клиента 


Номер 2

CREATE FUNCTION CustDiscount 
  ( @CustId INT ) 
  RETURNS DEC( 5, 3 ) 
BEGIN
  DECLARE @Discount DEC( 5, 3 ) 
  SET @Discount =
    ( SELECT Discount 
      FROM Customer 
      WHERE CustId = @CustId ) 
  RETURN @Discount 
END
    
Данный сценарий выполняет действия:
    

Ответ:

 (1) создается функция CustDiscount, определяется имя выходной переменной - DEC( 5, 3 ). Возвращает переменную @Discount, т.е. скидку определенного клиента 

 (2) создается функция CustDiscount, определяется тип выходного параметра - DEC( 5, 3 ). Возвращает переменную @Discount, т.е. скидку определенного клиента 

 (3) создается функция CustDiscount, определяется имя и тип выходной переменной - DEC( 5, 3 ). Возвращает переменную @CustId, т.е. Id определенного клиента 


Номер 3

CREATE FUNCTION CustDiscount 
  ( @CustId INT ) 
  RETURNS DEC( 5, 3 ) 
BEGIN
  DECLARE @Discount DEC( 5, 3 ) 
  SET @Discount =
    ( SELECT Discount 
      FROM Customer 
      WHERE CustId = @CustId ) 
  RETURN @Discount 
END
    
Данный сценарий выполняет действия:
    

Ответ:

 (1) создается функция CustDiscount, определяется тип выходного параметра - DEC( 5, 3 ). Возвращает переменную @Discount, т.е. скидку определенного клиента 

 (2) создается функция CustDiscount, определяется имя и тип выходной переменной - DEC( 5, 3 ). Возвращает переменную @CustId, т.е. Id определенного клиента 

 (3) создается функция CustDiscount, определяется имя выходной переменной - DEC( 5, 3 ). Возвращает переменную @Discount, т.е. скидку определенного клиента 




Главная / Базы данных / Программирование в Microsoft SQL Server 2000 / Тест 30