Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вся метода 3 (2).doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
1.15 Mб
Скачать

Идентификаторы

Имя объекта базы данных называется идентификаторам. В SQL Server любой объект может иметь идентификатор: серверы, базы данных и их объекты (таблицы, представления, столбцы, индексы, триггеры, процедуры, ограничения и правила). Для большинства объектов идентификаторы необходимы, в то время как для некоторых объектов (напри­мер, для ограничений) они не обязательны.

Идентификатор объекта создается при определении объекта. После этого на объект ссылаются с помощью идентификатора.

Классы идентификаторов

Существуют два класса идентификаторов: обычные и с ограничителями.

Обычные идентификаторы

В обычных идентификаторах ограничители не применяются. В следующем операторе SELECT присутствует два идентификатора: ТаЫеХ и KeyCol (ни один из которых не является идентификатором с ограничителями).

SELECT * FROM TableX WHERE KeyCol = 124

Более подробно о формате идентификаторов рассказано в SQL Server Books Online.

Идентификаторы с ограничителями

Идентификаторы с ограничителями заключаются в двойные кавычки (" ") или квадратные скобки ([ ]). Идентификаторы, соответствующие правилам форм атирования идентификаторов, бывают как с ограничителями, так и обычными идентификаторами. В следующем опе­раторе SELECT ограничители (квадратные скобки) не обязательны: SELECT * FROM [TableX] WHERE [KeyCol] = 124

В операторах Transact-SQL идентификаторы, не полностью соответствующие прави­лам форматирования, необходимо помещать между ограничителями. В следующем опера­торе SELECT идентификатор My Table необходимо использовать с ограничителями, поскольку он содержит пробел. Идентификатор Order также следует использовать с ограни­чителями, поскольку он совпадает с зарезервированным ключевым словом.

SELECT * FROM [My Table] WHERE [Order] = 10

Переменные

Переменная языка Transact-SQL представляет собой объект в пакетах Transact-SQL и сценариях, который может иметь определенное значение. После того как переменная определена (объявлена), один оператор Transact-SQL из пакета может установить ее значение, а другой — позже получить значение этой переменной. Следующие операторы Transact-SQL объявляют переменную с именем EmpIDVar, устанавливают ее значение равным 3, а затем используют эту переменную в операторе SELECT:

USE Northwind

DECLARE ШирШаг INT

SET @EmpIDVar = 3

SELECT * FROM Employees

WHERE EmployeelD = @EmpIDVar + 1

Как правило, переменные в пакетах и сценариях выполняют следующие функции:

  • являются счетчиками циклов;

  • хранят значение, анализируемое операторами, управляющими ходом выполнения программы;

  • используются для сохранения значения кода возврата хранимой процедуры.

Часто переменные используются в качестве счетчиков в операторах WHILE и LOOP, a также блоках IF...ELSE в пакетах или процедурах. Переменные можно применять только в выражениях, они не должны совпадать с именами объектов и ключевыми словами.

Функции

Функция инкапсулирует часто исполняемую логику в подпрограмму, которая состоит из одного или нескольких операторов Transact-SQL. Любая программа, которой требуется выполнить алгоритм, реализованный функцией, может не повторять весь алгоритм, а выз­вать эту функцию.

SQL Server2000 поддерживает функции двух типов:

  • встроенные функции — их работа определена в Transact-SQL, и ее нельзя модифицировать. Эти функции разрешается вызывать только в операторах Transact-SQL;

  • пользовательские функции — позволяют пользователям определять собственные функции Transact-SQL с помощью оператора CREATE FUNCTION.