Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Параметры

SQL Server 2008

Присваивание значения переменной

ПРЕДУПРЕЖДЕНИЕ!

Внимание! Нерекомендуемые типы данных

text, ntext и image — устаревшие типы данных, и применять их не следует.

 

Одна инструкция declare может использоваться для задания нескольких пере­менных, но табличную переменную следует задавать в отдельной инструкции DECLARE.

Переменной можно присвоить статическое значение или значение, возвращае­мое инструкцией select. Для присваивания значения можно применять инструк­цию set или инструкцию select, но если вы выполняете запрос, для присвоения значения вы должны использовать инструкцию select. Помимо присваивания значения с помощью инструкций set или select вы може­те также присвоить значение во время объявления переменной. Далее приведено несколько примеров задания значений переменных разными способами. Пример:

 

/*Объявление переменных и одновременное присвоение им значений*/

DECLARE @intvariable INT = 2,

@datevariable DATE = GETDATE()

@counter1 int,

@counter2 int

DECLARE @lastconsultationdate date=(select MAX(CONSULTATION_DATE)

from consultation_list.CONSULTATION_LIST)

/*Присвоение значений переменным*/

set @counter1=1

select @counter2=-1

 

Инструкция select также применяется для извлечения значения переменной.

 

/*Извлечение значений переменных*/

SELECT @intvariable, @datevariable,

@lastconsultationdate, @counter1, @counter2

 

 

Чаще всего забывают о том, что переменные, за исключением табличной перемен­ной, содержат скалярные значения. Если вы присваиваете переменной результаты инструкции select, то должны быть уверены, что эта инструкция вернет единствен­ную строку. Если инструкция select возвращает несколько строк, переменной будет присвоено значение, соответствующее последней строке результирующего набора, а все другие значения из результирующего набора будут потеряны.

Переменная может применяться для выполнения вычислений, управления обра­боткой или как аргумент поиска (search argument) в запросе. С помощью переменных можно выполнять вычисления, используя инструкцию set или select. В SQL Server 2008 введен более компактный способ присваивания значе­ний переменным с помощью вычисления.

-- SQL Server 2005

DECLARE @var INT

SET @var = 1

SET @var = @var + 1

SELECT @var

SET @var = @var * 2

SELECT @var

SET @var = @var / 4

SELECT @var

GO

 

DECLARE @var INT

SET @var = 1

SET @var += 1

SELECT @var

SET @var *= 2

SELECT @var

SET @var /= 4

SELECT @var

GO

 

Параметры — это локальные переменные, применяемые для передачи значений в хранимую процедуру во время ее выполнения. В процессе выполнения любые параметры используются так же, как переменные и могут читаться и записываться. Объявляются параметры, как показано в следующем примере.

 

create procedure <procedure_name>

(

@param1 int,

@param2 varchar(20)='Default value'

)

as

begin

--блок кода

end

Можно задавать параметры 2-х типов: входные и выходные. Выходной параметр обозначается ключевым словом OUTPUT.

create procedure <procedure_name>

(

@param1 int output, -- выходной параметр

@param2 varchar(20)='default value' –- входной параметр

-- со значением по умолчанию 'default value'

)

as

begin

-- блок кода

end

 

Выходные параметры применяются, когда нужно вернуть единственное значение в приложение. Если нужно вернуть целый результирующий набор, то в хранимую процедуру включается инструкция SELECT, которая формирует результаты и возвращает результирующий набор в приложение, как показано ниже.

 

create procedure [dbo].[GetClinic]

(

@ClinicID int

)

as

begin

select COUNTRY_ID,REGION_ID,CITY_ID,

STREET,HOUSE,[NAME],PHONE,CODE,POST_CODE

from dbo.CLINIC

where ID=@ClinicID

end

 

Процедура может возвращать несколько выходных наборов данных

Пример:

 

create procedure GetMKBIerarhi

as

begin

select * from A7.DISEASE

select * from A7.DISEASE_GROUP

select * from A7.DISEASE_SUBCLASS

select * from A7.DISEASE_CLASS

end

 

Вышеприведенная процедура выводит содержимое 4 таблиц:

A7.DISEASE, A7.DISEASE_GROUP, A7.DISEASE_SUBCLASS, A7.DISEASE_CLASS

 

Чтобы изменить процедуру необходимо написать код:

alter procedure <procedure_name>

as

begin

-- блок кода

End

Чтобы удалить процедуру необходимо написать код:

drop procedure <procedure_name>

 

<== предыдущая лекция | следующая лекция ==>
Внимание! Идентифицирующие значения | Функции. 1. Скалярные – возвращают скалярное значение, даже если это XML
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 238; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.