Следующий пример возвращает имя базы данный, используемой в данный момент:
SELECT DB_NAME() AS ‘datamase’
Результатом будет только одно значение с именем базы данных.
Функции набора строк – могут использоваться как ссылки на таблицы в операторах Transact-SQL. Следующий пример выполняет распределённый запрос для получения информации от EMP таблицы:
SELECT *
FROM OPENQUERY(OracleSrv, ‘SELECT ENAME, EMPNO FROM SCOTT.EMP’)
Вы часто будете использовать функции для конвертирования значения даты из формата одной страны в другой. Для изменения формата даты вы должны использовать функцию CONVERT с опцией стиля, для определения формата даты, который будет возвращён.
Пример 1
Следующий пример определяет, как вы можете конвертировать дату в другой стиль:
SELECT 'ANSI:' AS Region, CONVERT (varchar(30), GETDATE(), 102) AS Style
UNION
SELECT 'European:', CONVERT (varchar(30), GETDATE(), 113) AS Style
UNION
SELECT 'Japanise:', CONVERT (varchar(30), GETDATE(), 111) AS Style
Результат выполнения этого кода будет выглядеть так:
Region Style
--------- ------------------------------
ANSI: 2003.05.21
European: 21 May 2003 10:41:08:450
Japanise: 2003/05/21
(3 row(s) affected)
Пример 2
Следующий пример использует опцию DATEFORMAT оператора SET для форматирования даты продолжительности соединения. Эта установка используется только в прерывании строки, в которую происходит конвертирование и не имеет эффекта при отображении значения даты:
SET DATEFORMAT dmy
GO
DECLARE @vdate datetime
SET @vdate = '29/11/00'
SELECT @vdate
Результат:
------------------------------------------------------
2000-11-29 00:00:00.000
(1 row(s) affected)
Пример 3
Следующий пример возвращает имя пользователя и приложение, которое использует пользователь для текущей сессии и соединения. Пользователь в этом примере член роли sysadmin.
USE Northwind
SELECT user_name(), app_name()
Результат:
------------- ---------------------------dbo SQL Query Analyzer
(1 row(s) affected)
Пример 4
Следующий пример определяет, поддерживает ли колонка FirstName таблицы Employees базы данных Northwind нулевые значения.
Если результат равен нулю(false), значит, нулевые значения не поддерживаются. Если результат равен 1 (true), значит нулевые значения разрешены. Обратите внимание, что функция OBJECT_ID вызываться из функции COLUMNPROPERTY. Это позволяет вам получать id объекта таблицы Employees.
USE Northwind
SELECT COLUMNPROPERTY(OBJECT_ID('Employees'), 'FirstName', 'AllowNull')
Результат:
-----------
NULL
(1 row(s) affected)
Язык Transact-SQL содержит несколько языковых элементов, которые контролируют ход логики в операторах. Он также содержит выражение CASE, которое позволяет вам использовать условную логику одной или нескольких строк во время использования операторов SELECT или UPDATE.
Следующие языковые элементы позволяют вам контролировать ход логики в скрипте:
Блок BEGIN..END этот элемент заключает последовательность операторов Transact-SQL так, что SQL Server трактует их как модуль.
Блок IF..ELSE эти элементы указывают, что SQL Server должен выполнить первое выражение, если определённое условие равно true (истина). Иначе он должен выполнить второе выражение.
Конструкция WHILE выполняет операторы циклически так долго, пока определённое выражение истинно (true). Операторы BREAK и CONTINUE контролирую выполнение операторов внутри цикла WHILE.
Пример 1
Следующий пример определяет, есть ли у покупателя какие-нибудь заказы, прежде чем удалить покупатели из списка:
USE Northwind
IF EXISTS (SELECT OrderID FROM Orders
WHERE CustomerID = 'Frank')
PRINT '*** Клиент не может быть удалён ***'
ELSE
BEGIN
DELETE Customers WHERE CustomerID = 'Frank'
PRINT '*** Клиент удалён ***'
END
Выражение CASE содержит список значений и после этого проверяет каждый из них. Если выражение CASE возвращает значение true (истина), то возвращается значение из соответствующего WHEN пункта.
Синтаксис оператора:
CASE input_expression
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.