Пример 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 – это язык программирования, который могут использовать разработчики 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>
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.