Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Посібник Мова SQL кредитно-модульний.doc
Скачиваний:
33
Добавлен:
01.05.2015
Размер:
1.25 Mб
Скачать

Коментарі

Коментарі (або примітки) - це рядки програми, які не виконуються. З їхньою допомогою документують вихідний текст програми або тимчасово відключають частину операторів Transact-SQL і пакетів під час їхньої діагностики. Документування вихідного тексту програми коментарями полегшує супровід програми. У коментарях часто записують назву програми, ім'я автора і дати внесення у вихідний текст серйозних змін, крім того, у них можна описати складні обчислення або роз'яснити метод програмування.

SQL Server підтримує два типи знаків коментарів:

  • Подвійний дефіс ( --). Цей знак коментарю можна використати як усередині, так і на початку рядка програми. Всі символи від подвійного дефіса до кінця рядка розглядається як частина коментарю. У випадку багаторядкових коментарів, на початку кожного рядка коментарю повинен стояти подвійний дефіс, як показано на наступному прикладі:

USE Northwind

GO

-- Перший рядок багаторядкового коментарю.

-- Другий рядок багаторядкового коментарю.

SELECT - FROM Employees

GO

  • Парні символи «слэш— зірочка» (/*.. .*/ ). Ці знаки коментарю можна використати усередині, і на початку рядка, і навіть усередині здійсненного коду. Усе між знаками початку ( /* ) і кінця ( */ ) коментарю вважається частиною коментарю. Багаторядковий коментар повинен починатися з відкриваючої пари символів ( /* ) і закінчуватися закриваючою парою символів (*/). У цьому випадку не треба обмежувати знаками коментарю кожний рядок. Цей випадок показаний у наступному прикладі:

USE Northwind

GO

/* Перший рядок багаторядкового коментарю.

Другий рядок багаторядкового коментарю. */

SELECT * FROM Products

GO

Багаторядковий коментар не повинен виходити за межі пакета. Коментар повинен завершуватися до його кінця. Наприклад, для SQL Query Analyzer і утиліти osqlкоманда GO є ознакою кінця пакета. Якщо перші два байти в прочитаною утилітою рядку є символами GO, утиліта посилає всі прочитані після надходження останньої команди GO оператори на сервер як один пакет. Якщо команда GO виявиться на початку рядка між роздільниками /* і */, то в обох пакетах будуть послані незакриті знаки коментарю (що приведе до виникнення синтаксичних помилок).

У коментарі можна використати будь-які букви й цифри. SQL Server ігнорує всі символи усередині коментарю (за винятком команди GO). Крім того, довжина коментарю в пакеті не обмежена. Коментар може бути як однорядковим, так і багаторядковим.

Приклади. Створення сценаріїв за допомогою синтаксичних елементів мови Transact-sql

У цій вправі ми за допомогою редактору запитів створимо сценарії з різними синтаксичними елементами мови Transact-SQL.

Оголошення і ініціалізація змінної та її використання

  1. У редакторі запитів уведемо наступний код:

-- Оголосити необхідну змінну..

DECLARE @MyCounter INT

-- Ініціалізувати змінну

SET @MyCounter = 0

Цей оператор оголошує змінну @MyCounter, визначає для неї тип данихintі привласнює їй значення 0.

  1. На додаток до написаного сценарію, уведемо наступний код:

/* Визначити за допомогою змінною число циклів */

WHILE (@MyCounter < 26)

BEGIN

-- Вставити в таблицю рядок.

INSERT INTO [New Table] VALUES

-- За допомогою змінної одержавши значення

-- для стовпця ColumnA

-- згенерувати унікальну літеру для кожного

-- рядка. Одержати цілочислене

-- значення символу "а" за допомогою

-- функції ASCII.

-- Додати @MyCounter. За допомогою

-- функції CHAR перетворити суму

-- знову в символи @MyCounter, які

-- наступні після символу "а".

(

@MyCounter + 1,

CHAR( ( @MyCounter + ASCII(’a’) ) )

)

/* Збільшити значення змінної для обліку

цієї ітерації циклу */

SET @MyCounter = @MyCounter + 1

END

GO

SET NOCOUNT OFF

GO

Цей оператор завершує сценарій. Зверніть увагу на застосування двох елементів мови керування ходом виконання: WHILE і BEGIN...END. Значення рядків у цьому операторі визначені за допомогою виразу(@MyCounter + 1і@MyCounter + ASCII('а')) і функційCHARі ASCII. Наприкінці сценарію поміщений операторSETNOCOUNTOFF, щоб знову включити генерацію повідомлень із результатами підрахунку рядків.