Declare SQL: опис. Transact-SQL


Опубликованно 29.11.2017 02:50

Declare SQL: опис. Transact-SQL

Сьогодні практично кожен сучасний програміст знає, що таке Transact-SQL. Це розширення, яке використовується в SQL Server. Дана розробка тісно інтегрована в Microsoft SQL і додає конструктори програмування, які спочатку не передбачені в базах даних. T-SQL підтримує змінні, як і в більшості інших розробках. Однак це розширення обмежує використання змінних способами, які поширені в інших середовищах.Оголошення змінних у DECLARE SQL

Для оголошення змінної T-SQL використовується оператор DECLARE (<var_name>). Наприклад, у разі оголошення змінної i як ціле з використанням даного оператора команда буде виглядати так: DECLARE @i int.

Хоча Microsoft не документує цю функцію, T-SQL також підтримує вказівку ключового слова AS між ім'ям змінної і її типом даних, як у наступному прикладі: DECLARE @i AS int. Ключове слово AS спрощує читання інструкції DECLARE. Єдиний тип даних, який не дозволяє вказати ключове слово AS, - це тип даних таблиці, який є новим у SQL Server 2000. Він дає можливість визначити змінну, що містить повну таблицю.DECLARE SQL: опис

T-SQL підтримує тільки локальні змінні, які доступні виключно в тій партії, яка їх створила. Пакет - це оператор або група операторів), який база даних аналізує як одиницю. Кожен клієнтський інструмент або інтерфейс має свій власний спосіб вказівки, де закінчується пакет. Наприклад, в Query Analyzer ви використовуєте команду GO, щоб вказати, де закінчується пакет. Якщо у вас є синтаксична помилка у будь-якому заяві, пакет не проходить фазу розбору, тому клієнтський інструмент не надсилає пакет на SQL Server для подальшої обробки. Ви можете запустити код, який оголошує змінну таблиці, а потім вставляє рядок в таблицю у тієї ж партії.

Приклад SQL Declare Table:

DECLARE @mytable table col1 int NOT NULL INSERT INTO @mytable VALUES (1) GO

Тепер оголосити змінну таблиці в одній партії, а потім вставити рядок в таблицю в іншу партію:

DECLARE @mytable table col1 int NOT NULL INSERT INTO @mytable VALUES (1)GO

Оператор INSERT терпить невдачу, тому що змінна таблиці виходить за межі області видимості, і з'являється таке протокол imap про помилку: Сервер: Msg 137, рівень 15, стан 2, рядок 2.Змінні в процедурах (інструкції DECLARE, SET)

Підтримка локальних змінних в процедурах SQL дозволяє призначати і витягувати значення даних у підтримку логіки процедур. Змінні в процедурах визначаються за допомогою оператора DECLARE SQL. Значення можуть присвоюватися змінним за допомогою оператора SET або як значення за замовчуванням при оголошенні змінної. Литералам, виразами, результатами запиту і спеціальним значенням регістра можуть бути присвоєні змінні.

Значення змінних можуть бути призначені параметрами процедури, іншим змінним, а також можуть бути вказані як параметри в операторах SQL, виконуваних у рамках процедури. Алгоритм

При оголошенні змінної ви можете вказати значення за замовчуванням, використовуючи пропозицію DEFAULT. Рядок показує оголошення змінної типу Boolean зі значенням за замовчуванням FALSE. Оператор SET може використовуватися для призначення одного значення змінної. Змінні також можуть бути встановлені шляхом виконання інструкції SELECT або FETCH в поєднанні з пропозицією INTO. Оператор VALUES INTO може використовуватися для оцінки функції або спеціального регістра і присвоювати значення кільком змінним.

Ви також можете присвоїти результат оператора GET DIAGNOSTICS змінної. GET DIAGNOSTICS може використовуватися для отримання дескриптора кількості оброблених рядків (оновлюється для оператора UPDATE, DELETE - для оператора DELETE) або статусу повернення щойно виконаного SQL-оператораОсобливості

Рядок DECLARE SQL демонструє, як частина логіки може використовуватися для визначення значення, яке повинне бути присвоєно змінній. У цьому випадку, якщо рядки були змінені як частина більш раннього оператора DELETE, а виконання GET DIAGNOSTICS призвело до того, що змінної v_rcount присвоєно значення більше нуля, змінної is_done привласнюється значення TRUE.Процедури

Процедури DECLARE SQL - це процедури, повністю реалізовані з використанням SQL, які можуть використовуватися для інкапсуляції логіки. Та ж в свою чергу може бути викликана як підпрограма програмування.

В архітектурі бази даних існує багато корисних додатків SQL-процедур. Вони використовуються для створення простих сценаріїв для швидкого запиту на перетворення і оновлення даних, генерації базових звітів, підвищення продуктивності і модуляції додатків, а також для поліпшення загального проектування і забезпечення безпеки баз даних.

Існує безліч функцій процедур, які роблять їх потужним інструментом обробки. Перш ніж прийняти рішення про запровадження процедури SQL, важливо зрозуміти, які аналоги знаходяться в контексті підпрограм, як вони реалізовані і як їх можна використовувати. Створення процедур

Впровадження SQL-процедур може грати важливу роль в архітектурі бази даних, розробці програм і продуктивності системи. Розробка вимагає чіткого розуміння вимог, можливостей та використання функцій, а також знання будь-яких обмежень. Процедури SQL створюються по інструкції CREATE PROCEDURE. Коли створюється алгоритм, запити в тілі процедури відокремлюються від процедурної логіки. Щоб максимізувати продуктивність, SQL-запити статично компілюються у розділи в пакетіЗмінні

Локальна змінна Transact-SQL - це об'єкт, який може містити одне значення даних певного типу. Зазвичай використовуються змінні в партіях і сценаріях:в якості лічильника потрібно або підрахувати кількість циклів, або встановити, скільки разів цикл виконується;щоб зберегти значення, яке має бути перевірено оператором управління потоком;щоб зберегти значення, яке буде повернуто кодом повертається функції.

Імена функцій Transact-SQL починаються зі знаків (@@). Хоча в більш ранніх версіях Microsoft SQL Server функції @@ називаються глобальними змінними. @@ - це системні функції, і їх використання підпорядковується правилам синтаксису для функцій.Оголошення змінної

Оператор DECLARE визначає змінну Transact-SQL згідно наступного алгоритму:визначення імені, яке повинно мати один символ " @ " в якості першого символу;призначення заданого або визначеного користувачем типу даних і довжини;для числових змінних також призначаються точність і масштаб.для змінних типу XML може бути призначена додаткова складання схеми.Установка значення NULL. Наприклад, оператор DECLARE в SQL-запиті створює локальну змінну з ім'ям @mycounter з типом даних int.

Щоб оголосити кілька локальних змінних, використовуйте кому після визначення першої локальної змінної, а потім вкажіть наступне ім'я локальної мережі і тип даних. Наприклад, наступний оператор створює три локальні змінні з ім'ям @LastName, @FirstName і @StateProvince і ініціалізує кожен з NULL. Обсяг змінної - це діапазон операторів Transact-SQL, які можуть посилатися на змінну. Обсяг змінної триває від тієї точки, яка оголошується до кінця партії або збереженої процедури, в якій вона оголошена.



Категория: Техника