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