Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Сохранение значений, вычисляемых оператором SELECT в локальных переменных
Результат выполнения оператора SELECT может быть не только возвращен приложению, направившему запрос, или сохранен в новой таблице, но и в отдельных случаях записан в переменные программы. В переменных сохраняется последнее значение, созданное в соответствующем элементе списка вывода при выполнении запроса. Для сохранения значения в переменной элемент списка вывода имеет вид: @< имя локальной переменной > = < выражение >. Например, операторы dычисляют и сохраняют в переменной @n количество строк в таблице authors. Последний оператор используется для вывода значения из переменной @n, поскольку присваивающий оператор SELECT не передает данные клиенту, пославшему запрос: DECLARE @n int SELECT @n = COUNT(*) FROM authors SELECT @n (это выводит результат) Последовательность операторов сохраняет в переменных, а затем выводит фамилию и имя автора из последней строки таблицы authors: DECLARE @au_ln varchar(40),@au_fn varchar(20) SELECT @au_ln = au_lname, @au_fn = au_fname FROM authors SELECT @au_ln, @au_fn Типы данных для переменных: -Int char(<n>) – строка фикс.длины Float Decimal varchar(<n>) – строка переменной длины -DATETIME SET DATEFORMAT <формат даты> SET DATEFORMAT dmy – день, месяц, год. -MONEY – денежный, до 4 десятичных цифр -TABLE – значение – таблица. Результат SELECT может быть сохранен в новой таблице базы или в переменной программы: Select @<имя переменной>=<выражение> DECLARE @p datetime SELECT @p = max(ord_date) FROM dbo.titles INNER JOIN dbo.Sales ON dbo.titles.title_id = sales.title_id WHERE titles.title=’…’ SELECT titles.* ord_date FROM dbo.titles INNER JOIN dbo.Sales ON dbo.titles.title_id = sales. title_id WHERE ord_date>@p Не знаю, что за запрос, но был в лекциях. Использование табличной переменной. DECLARE @Tab table (Fint, S varchar(70)) Insert @Tab select * FROM T1 Дважды добавляются строки из Т1 Insert @Tab select * FROM T1 SELECT * FROM @Tab вывод Оператор SET SET @<имя переменной>=<выражение>, … DECLARE @save_error int SET @save_error = @@Error Вывод значений переменных 1. SELECT DECLARE @X int, @Y varchar(12) SELECT @X,@Y Выведет: NULL NULL 2. Print Print <выражение числовое, строковое> Print @save_error – выведет 0 DECLARE @X integer Print @X или Print @X+10 – выведет невидимый результат Структурные операторы Transact SQL: IF, GO TO, WHILE, WAITFOR. Примеры применения. Составной оператор: BEGIN <Оператор T-SQL> END Оператор передачи управления GO TO <метка> <метка>:< Оператор T-SQL > Условный оператор: IF<исчисляемое выражение> < Оператор T-SQL> ELSE < Оператор T-SQL>
Анализ результата запроса: IF [NOT] EXISTS (SELECT * FROM …) Оператор цикла: WHILE <логическое выражение> < Оператор T-SQL> CONTINUE BREAK
Оператор ожидания WAITFOR -время задержки следующего оператора - момент времени продолжения исполнения оператора WAITFOR DELAY/TIME BEGIN WAITFOR TIME ’22:20’ ………………. END
Обработка исключений в программах Transact SQL. Функции для анализа причины исключений и вывода сообщений. Cообщения сервера: RAISERROR(<номер/текст сообщения>,<уровень серьезности>,<состояние>) Sysmessages – таблица в БД MASTER хранит все сообщения сервера (пользоват.сообщения >500)
Обработка исключений BEGIN TRY …………. END TRY BEGIN CATCH ……….. END CATCH
Use pubs BEGIN TRY INSERT authors VALUES’() PRINT ‘Правильно!’ END TRY BEGIN CATCH PRINT ‘Обнаружен дубликат первичного ключа’ END CATCH
Анализ исключения 1. Проверка кода ошибки @@ERROR …………….. – блок TRY BEGIN CATCH IF @@ERROR = 2627 – код дубликата РК OR INT ELSE END CATCH
2. Использование специальных функций: Error_number(), Error_message(), Error_severity(), Error_state(), Error_line(), Error_procedure()
3. Замена исключения функцией RAISERROR() Команда GO разбивает набор операторов скрипта на отдельные независимо исполняемые пачки DECLARE @p float SELECT @p = max (price) FROM titles GO Print @p – неизвестная переменная @p
|
|||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 101; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.156.156 (0.005 с.) |