Операторы SET и select

Синтаксис оператора SET

SET <имя переменной>=<значение переменной>

Синтаксис оператора SELECT

SELECT <имя переменной> = <значение переменной>

Пример 87

Задание.

Присвоить значения переменным, используя оператор SET

Решение.

declare @AvgMark int

declare @TotalSumma decimal

declare @MSumma decimal

SET @AvgMark=4

SET @TotalSumma=@MSumma*1.8

SET @AvgMark=(Select AVG(Mark) FROM Progress)

Различия между использованием SET и SELECT при присвоении значения переменной практически не существует. Когда применять тот или иной оператор решать пользователю. Однако, поскольку, при присвоении переменной значения, полученного из запроса, код запроса несколько короче при использовании SELECT, то его в этом случае чаще всего и применяют. То есть, SET используют для присвоения известного значения переменной, SELECT – для присвоения переменной результата запроса.

Use Student

DECLARE @AvgMark Numeric (5,2)

SET @AvgMark= AVG(Mark) FROM Progress

SELECT @AvgMark

SQL Server 2000 выдаёт ошибку:

Incorrect syntax near the keyword 'FROM'.

Но!!!

USE Student

DECLARE @AvgMark NUMERIC (5,2)

SET @AvgMark=(SELECT AVG(Mark)

FROM Progress)

SELECT @AvgMark [Средняя оценка]

Результат выполнения запроса.

Наиболее часто применимый код

Use student

DECLARE @AvgMark Numeric (5,2)

SELECT @AvgMark= AVG(Mark) FROM Progress

SELECT @AvgMark [Средняя оценка]

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

· @@IDENTITY

· @@ERROR

Функция @@IDENTITY

Функция @@IDENTITY возвращает автоматически сгенерированное последним оператором значение. Необходима в тех случаях, когда применяются столбцы с уникальным сгенерированным значением и существует ссылка на них в дочерних таблицах. Хранит только последнее вставленное значение, предыдущее значение не будет сохранено, если его предварительно не записали в переменную. Если при выполнении последней команды INSERT ни один вставленный столбец не будет иметь уникального значения, то @@IDENTITY будет иметь признак NULL.

Функция @@ERROR

Функция @@ERROR содержит код ошибки последнего выполняемого в текущем подключении оператора T-SQL. Код ошибки есть целое число (Integer). Если ошибка отсутствует, то значение переменной равно 0. Жизненный цикл переменной ограничивается одним оператором. Если необходимо проверить ошибку в конкретном операторе, то это следует делать в операторе, непосредственно следующем за данным, либо сохранить значение системной переменной для дальнейшего использования

Перечень ошибок хранится в базовой таблице SYSMESSAGES базы данных MASTER. Для добавления собственного списка ошибок используют хранимую процедуру sp_addmessage.

Пример 88

Задание.

Создать хранимую процедуру, которая создаёт список студентов и их номеров зачёток и упорядочивает их по имени.

Решение:

CREATE PROCEDURE PStudentSNameView

as

SELECT SName ФИО, NRecordBook [№ зачётки]

FROM Student

ORDER BY SName

EXEC PStudentView

Результат выполнения запроса:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: