Декларирайте SQL: Описание. Transact-SQL

Днес практически всеки съвременен програмист знае какво е Transact-SQL. Това е разширение, което се използва в SQL Server. Това развитие е тясно интегрирано в Microsoft SQL и добавя програмни конструктори, които първоначално не са предоставени в бази данни. T-SQL поддържа променливи, както в повечето други разработки. Това разширение обаче ограничава използването на променливи по начини, които не са често срещани в други среди.

Обявяване на променливи в DECLARE SQL

Използвайте оператора DECLARE (), за да декларирате променлива в T-SQL. Например, в случай на деклариране на променлива 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 @mytable table
col1 int NOT NULL
INSERT INTO @ mytable VALUES


GOThen обявява променливата на таблицата в един пакет и след това поставя ред в таблица към друга партида: DECLARE @mytable table
col1 int НЕ NULL
INSERT INTO @ mytable VALUES

GOERer INSERT се проваля, защото табличната променлива е извън обхвата и се появява следното съобщение за грешка: :
Сървър: Msg 137, ниво 15, състояние 2, ред 2.

Променливи в процедури (инструкции DECLARE, SET)

Подкрепа за локални променливи в SQL процедури ви позволява да присвоите и изтеглите zn Обработка на данни в подкрепа на логиката на процедурите. Променливите в процедурите се определят с помощта на SQL оператора DECLARE. Стойностите могат да бъдат присвоени на променливите, като се използва израза SET или като стойност по подразбиране при деклариране на променлива. За променливи могат да се присвоят букви, изрази, резултати от заявки и специални регистърни стойности.
Стойностите на променливите могат да бъдат присвоени на параметрите на процеса, други променливи и също могат да бъдат определени като параметри в SQL изрази, изпълнявани в рамките на процедурата.

Алгоритъм

Когато декларирате променлива, можете да посочите стойност по подразбиране,използвайки DEFAULT оферта. В низ се показва декларация на променлива от тип Boolean със стойността по подразбиране FALSE. Операторът SET може да се използва за задаване на една стойност на променлива. Променливите също могат да бъдат зададени чрез изпълнение на оператора SELECT или FETCH във връзка с клаузата INTO. Операторът VALUES INTO може да се използва за оценяване на функция или специален регистър и присвояване на стойност към няколко променливи.Резултат от променливата GET DIAGNOSTICS може да се присвои на променливата. GET DIAGNOSTICS може да се използва за получаване на броя на дескрипторите на засегнатите редове (актуализиран за оператора UPDATE, DELETE за оператора DELETE) или статуса на връщане на новоизпълнения SQL оператор

. стойността, която се присвоява на променливата. В този случай, ако редовете бяха променени като част от по-ранен оператор DELETE, а изпълнението на GET DIAGNOSTICS доведе до факта, че на променливата v_rcount е присвоена стойност, по-голяма от нула, на променливата is_done се присвоява TRUE стойност.

Процедури

DECLARE SQL процедурите са процедури, които са напълно изпълнени с помощта на SQL, които могат да бъдат използвани за капсулиране на логиката. Същото на свой ред може да се нарече програма подпрограма.
В архитектурата на базата данни има много полезни приложения за SQL-процедури. Те се използват за създаване на прости скриптове за бърза заявка за преобразуване и актуализиране на данни, генериране на основни отчети, подобренияпроизводителност и модулация на приложенията, както и за подобряване на цялостния дизайн и сигурност на базата данни.Има много процедурни функции, които ги правят мощен инструмент за обработка. Преди да решите да приложите SQL процедурата, е важно да разберете какви аналози са в контекста на подпрограмите, как се прилагат и как могат да бъдат използвани.

Създаване на процедури

Прилагането на SQL процедури може да играе важна роля в архитектурата на базата данни, разработването на приложения и производителността на системата. Развитието изисква ясно разбиране на изискванията, възможностите и използването на функциите, както и познаване на всякакви ограничения. SQL процедурите се създават съгласно оператора CREATE PROCEDURE. Когато се създаде алгоритъм, заявките в тялото на процедурата се отделят от процедурната логика. За да се максимизира производителността, SQL заявките са статично компилирани в секции в пакета

. Обикновено променливите се използват в партиди и скриптове:
  • Като брояч трябва или да преброите броя на циклите, или да зададете колко пъти се изпълнява цикъла;
  • за запазване на стойността на данните, които трябва да бъдат проверени от оператора за контрол на потока;
  • За да запишете стойността на данните, които ще бъдат върнати от кода на функцията за връщане.
  • Имената на редица Transact-SQL функции започват с символи (@@). Въпреки че в по-ранните версии на Microsoft SQL Server функции @@ се наричат ​​глобални променливи.@@ - това са системни функции и тяхното използване се подчинява на синтактичните правила за функциите.

    Declaring Variable

    Операторът DECLARE дефинира променливата Transact-SQL съгласно следния алгоритъм:
  • определяне на име, което трябва да има един символ @ като първи символ;
  • определяне на даден или дефиниран от потребителя тип и дължина на данните;
  • за числовите променливи също се придава точност и мащаб.
  • за XML променливи, може да се присвои допълнително изграждане на схемата.
  • Настройване на стойността на NULL. Например, операторът DECLARE в SQL заявката създава локална променлива с име @mycounter с тип данни int.
  • За да декларирате няколко локални променливи, използвайте запетая след определяне на първата локална променлива и след това укажете следното име на локална мрежа и тип данни. Например следното изявление създава три локални променливи с име @LastName, @FirstName и @StateProvince и инициализира всеки от NULL. Обемът на променлива е обхватът на операторите на Transact-SQL, които могат да се отнасят до променлива. Обемът на променливата продължава от точката, която е декларирана до края на партидата или запаметената процедура, в която е декларирана.

    Свързани публикации