Создание и управление индексами. Создание и управление встроенными процедурами. Оптимизация производительности запросов. Управление транзакциями и блокировками, страница 26

SELECT name FROM sysobjects

WHERE type = 'TR'

ORDER BY type, name

GO

/* Execute sp_helptrigger on the Order Details table */

sp_helptrigger [Order Details]

Выполните следующий код:

SELECT * FROM Products WHERE ProductID=22

В возвращённой строке, в колонке UnitsInStock должно быть число 104. Выполните следующий код, и значение этой колонки изменится на 54:

INSERT [Order Details]

(OrderID, ProductID, UnitPrice, Quantity, Discount)

VALUES (11077, 22, 21.00, 50, 0.0)

GO


Программирование между множеством серверов

12.1 Введение в распределённые запросы

Распределённые запросы получают доступ к данным из разнородных источников данных, хранящихся на локальном или удалённом компьютере. Сервер SQL поддерживает распределённые запросы, используя Microsoft OLE DB Provider.

Распределённые запросы предоставляют пользователям SQL Server доступ к:

*  Распределённым данным, хранящимся на нескольких компьютерах с запущенным SQL Server;

*  Разнородным источникам данных в различных реляционных и не реляционных источниках данных, для которых существует OLE DB Provider или ODBC драйвер.

Вы можете использовать две технологии для доступа к источникам данных OLE DB из SQL Server:

*  Для доступа к удалённым данным, когда вам не нужно будет получать доступ повторно, вы можете писать контактный запрос, с функциями OPENROWSET или OPENDATASOURCE.

*  Связанный серверный запрос. Для доступа к удалённым данным многократно, вы можете использовать привязанный сервер и имя объекта из четырёх частей. Привязанный сервер это OLE DB источник данных, который заранее зарегистрирован в локальном SQL Server для того, чтобы, когда на него ссылаются, локальный сервер знал, где искать удалённые данные и объекты. Использование связанного сервера – это эффективный способ предоставления объединений SQL серверов и других запросов, когда вы знаете, что определённые данные должны быть доступны.

В любой сессии распределённых запросов, опции ANSI_NULLS и ANSI_WARNINGS должны быть включены. Если вы используете ODBC или Query Analyzer для распределённых запросов, эти опции включены по умолчанию. Если вы используете osql утилиту командной строки, вы должны напрямую установить эти опции в состояние ON.

Выполнение контактных запросов к удалённому источнику данных

Вы можете получить доступ к данным из удалённого источника, используя OLE DB Provider. Функция OPENROWSET позволяет вам соединиться и получить доступ к данным из удалённого источника без установки связанного сервера. Используйте функцию OPENROWSET когда вы не будете использовать определённый источник данных многократно.

OPENROWSET ( 'provider_name'

, { 'datasource' ; 'user_id' ; 'password'

| 'provider_string' }

, { [ catalog. ] [ schema. ] object

| 'query' }

)

Следующая таблица описывает параметры этой функции:

Параметр

Описание

provider_name

Уникальное, дружественное имя для OLE DB Provider соответствующее источнику данных

data_source

Имя источника данных интерпретируемое OLE DB Provider

user_id

Имя пользователя, которое будет передано поставщику

password

Пароль

provider_string

Строка подключения, специфичная для OLE DP Provider, которая идентифицирует уникальный источник данных

catalog

Каталог или база данных, в которой находится объект

schema

Схема или владелец объекта

object

Уникальное имя объекта

query

Строка, содержащая запрос, который должен быть отправлен и выполнен

Следующий пример использует родной OLE DB Provider для SQL Server для доступа к информации из базы данных Northwind на сервере London. Для доступа к удалённому серверу используется учётная запись пользователя newcustomer:

SELECT a.*

FROM OPENROWSET('SQLOLEDB', 'LONDON'; 'newcustomer'; 'mypass',

'SELECT ProductID, UnitPrice FROM Northwind.dbo.Products

ORDER BY UnitPrice') AS a