Введение в программирование SQL Server. Создание и управление базой данных. Инструменты целостности данных, страница 7

Пример 2

Следующий пример демонстрирует, как можно изменить настройки SQL Server и выполнить запрос. Следующий пример не возвращает количества обработанных строк:

EXECUTE('SET NOCOUNT ON'+

' SELECT LastName, ReportsTo FROM Employees WHERE ReportsTo IS NULL')

Использование партий

Вы также можете отправлять один или несколько операторов в партии. Партии могут быть интерактивными или частью скрипта. Скрипт может содержать более одной партии операторов Transact-SQL.

Используйте оператор GO для сигнализации конца партии. Оператор GO не универсален и гарантированно его понимают только SQL Query Analyzer и osql утилиты, остальные могут выдать синтаксическую ошибку.

Примеры партий:

CREATE DATABASE …

CREATE TABLE …

GO

CREATE VIEW1 …

GO

CREATE VIEW2 …

GO

Использование скриптов

Скрипт – один из часто используемых способов для выполнения операторов Transact-SQL. Скрипт – это один или несколько операторов сохранённых в виде файлов.

Вы можете писать и сохранять скрипты в SQL Query Analyzer Оли osql утилитах (или других утилитах создания запросов).

Сохранённые скрипты очень удобны при пересоздании баз данных или объектов данных, или когда вы должны использовать набор операторов регулярно.

Использование транзакций

Транзакции похожи на партии, группируют операторы, которые выполняются как набор. Однако SQL Server ссылаются на транзакции как целый модуль для работы, и транзакция может быть удачной или ошибочной целиком. Этот процесс обеспечивает целостность данных. Транзакция может содержать несколько партий.

Начинайте транзакцию с помощью оператора BEGIN TRANSACTION и заканчивайте COMMIT TRANSACTION или откатывайте (отмена изменений сделанных данной транзакцией) с помощью ROLLBACK TRANSACTION.

Когда транзакция принята, SQL Server делает изменения, которые сделала транзакция. Когда транзакция откатана, SQL Server возвращает все строки в состояние, которое было до начала выполнения транзакции.

Синтаксис:

BEGIN TRANSACTION

COMMIT/ROLLBACK TRANSACTION

Пример

В следующем примере показывается пример использования транзакций:

BEGIN TRANSACTION

UPDATE savings

SET balance = (amount - 100)

WHERE custid=78910

IF @@ERROR<>0

BEGIN

RAISERROR('Транзакция не завершена из за проблемы со счётом', 16,-1)

ROLLBACK TRANSACTION

END

UPDATE checking

SET balance = (amount + 100)

WHERE custid=78910

IF @@ERROR<>0

BEGIN

RAISERROR('Транзакция не завершена из за проблемы со чеком', 16,-1)

ROLLBACK TRANSACTION

END

COMMIT TRANSACTION

Использование XML

XML – это язык программирования, который могут использовать разработчики WEB для представление данных из базы данных SQL Server в WEB страницы.

Когда вы используете пункт FOR XML в операторе SELECT, SQL Server:

*  Возвращает результат запроса в виде буквенных строк.

*  Возвращает атрибуты данных, таких как имена колонок и таблиц, в виде тэгов. Клиентский браузер может потом использовать эти тэги для форматирования возвращаемой информации.

Вы можете указывать опцию FOR XML AUTO для возврата результата запроса в стандартном формате.

Пример 1

Этот пример выбирает три колонки из двух объединённых таблиц. Обратите внимание, что результат комбинирует все колонки в одну текстовую строку:

SELECT Orders.OrderID, Shippers.CompanyName, Orders.CustomerID

FROM Orders JOIN Shippers

ON Orders.shipvia = Shippers.ShipperID

WHERE OrderID<10250

FOR XML AUTO

Результат:

XML_F52E2B61-18A1-11d1-B105-00805F49916B                                                                                                                                                                                                                         

-----------------------------------------------------------------------<Orders OrderID="10248" CustomerID="VINET">

<Shippers CompanyName="Federal Shipping"/>

</Orders>

<Orders OrderID="10249" CustomerID="TOMSP">

<Shippers CompanyName="Speedy Express"/>

</Orders>