Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD.doc
Скачиваний:
4
Добавлен:
28.10.2018
Размер:
483.84 Кб
Скачать

25. Функції користувача в tsql.

Функция пользователя - определяемая пользователем функция, представляющая собой подпрограмму Transact-SQL или среды CLR, которая принимает параметры, выполняет действия, такие как сложные вычисления, а затем возвращает результат этих действий в виде значения. Возвращаемое значение может быть скалярным значением или таблицей. При помощи этой инструкции можно создать подпрограмму, которую можно повторно использовать следующими способами.

  1. В инструкциях Transact-SQL, например SELECT.

  2. В приложениях, вызывающих функцию.

  3. В определении другой пользовательской функции.

  4. Для параметризации представления или улучшения функциональности индексированного представления.

  5. Для определения столбца таблицы.

  6. Для определения ограничения CHECK на столбец.

  7. Для замены хранимой процедуры.

Create Function - Создает определяемую пользователем функцию в SQL.

Скалярная функция может быть указана в любом месте вместо скалярного выражения, в том числе в вычисляемых столбцах и определениях ограничений CHECK. Кроме того, скалярная функция может быть выполнена инструкцией EXECUTE. Скалярные функции должны вызываться с помощью как минимум двухкомпонентного имени. Функция, возвращающая табличное значение, может быть вызвана в любом месте, где допускаются табличные выражения, — в предложении FROM инструкций SELECT, INSERT, UPDATE и DELETE.

В функциях допустимы следующие инструкции.

  1. Инструкции присваивания.

  2. Инструкции управления потоком, за исключением инструкций TRY...CATCH.

  3. Инструкции DECLARE, объявляющие локальные переменные и локальные курсоры.

  4. Инструкции SELECT, которые содержат списки выбора с выражениями, присваивающими значения локальным переменным.

  5. Операции над локальными курсорами, которые объявляются, открываются, закрываются и освобождаются в теле функции. Допустимы только те инструкции FETCH, которые предложением INTO присваивают значения локальным переменным. Инструкции FETCH, возвращающие данные клиенту, недопустимы.

  6. Инструкции INSERT, UPDATE и DELETE, которые изменяют локальные табличные переменные.

  7. Инструкции EXECUTE, вызывающие расширенные хранимые процедуры.

26. Представлення в tsql.

Представление - это таблица, которая входит в БД, но не содержит собственные данные. Данные вносятся из других таблиц посредством запроса. При этом данные в представлении изменяются при изменении данных в базовых таблицах. С представлениями можно работать как с базовыми таблицами. Представление является мощным средством защиты данных. Создание представления: CREATE VIEW <имя_представления> AS SELECT FROM WHERE Запуск: SELECT * FROM <имя_представления> Представление, которое позволяет изменять данные в базовой таблице называется изменяемым (обновляемым). К обновляемым представлениям можно применять команды манипулирования данными. Необновляемые представления имеют режим только для чтения. 

Условия для того, чтобы представления были обновляемыми:

  1. Представление должно базироваться только на одной таблице.

  2. Представление должно включать первичный ключ таблицы.

  3. Представление не должно содержать полей с функциями - агрегациями.

  4. Представление не должно содержать ключевого слова DISTINCT.

  5. Представление не должно иметь группировки.

  6. Представление не долно содержать подзапросы.

  7. Представление не должно содержать вычисляемые поля.

В неизменяемых представлениях можно использовать подзапрос.

В представлениях нельзя использовать объединение и сортировку. Удаление представления: DROP VIEW <имя_представления> На базовые таблицы создание и удаление представлений никакого действия не оказывают. Существуют случаи, когда изменения в базовой таблице не появляются в представлении, т.к. в представлении выводятся не все данные, а данные с условиями.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]