КАТЕГОРИИ: Архитектура-(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>
Дата добавления: 2014-01-04; Просмотров: 261; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |