Опубликован: 29.07.2008 | Доступ: свободный | Студентов: 1171 / 115 | Оценка: 4.49 / 4.15 | Длительность: 17:53:00
Лекция 4:

Работа с данными из удаленных источников

< Лекция 3 || Лекция 4: 12345 || Лекция 5 >

Вставка, обновление или удаление данных на удаленном источнике данных в SQL Server

Методы, которые использовались для чтения данных из удаленных источников из SQL Server, можно также применить для выполнения предложений INSERT, UPDATE и DELETE на удаленных источниках данных.

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

Функции OPENROWSET и OPENDATASOURCE могут использоваться в предложениях INSERT, UPDATE и DELETE для манипуляций с данными на удаленном источнике данных.

При использовании функции OPENROWSET можно указать запрос для выполнения или полное уточненное имя, которое ссылается на обновляемую таблицу.

Следующий код показывает, как добавить новую запись в файл Excel. (Код в этом разделе можно найти в файлах примеров в папке SqlScripts под именем UsingAdHocToUpdate.sql )/

INSERT OPENROWSET(
"Microsoft.Jet.OLEDB.4.0",
"Excel 8.0;DATABASE=C:\Documents and Settings\User\My Documents\
Microsoft Press\Sql2005SBS_AppliedTechniques\
Chapter08\EmployeeList.xls', "SELECT FirstName, LastName, Title, Region FROM [Employees$]") VALUES ("John",
"Doe",
"Consultant",
"CA")

Код, который приводится ниже, показывает, как вставить новую запись в удаленную базу данных SQL Server.

- Вставка в удаленную базу данных SQl Server INSERT OPENROWSET(
"SQLOLEDB",
"Server=Sales; Trusted_Connection=yes;",
"SalesDB.Sales.Orders") VALUES (175642, "2001-10-04", 6500.05) GO

Функция OPENDATASOURCE может использоваться для вставки ( INSERT ), обновления ( UPDATE ) или удаления ( DELETE ) данных в удаленной таблице с полным уточненным именем. В этом случае запрос определять не нужно. Следующий код демонстрирует этот метод на примере файла Microsoft Office Excel.

INSERT OPENDATASOURCE( "Microsoft.Jet.OLEDB.4.0", "Excel 8.0;DATABASE=C:\Documents and Settings\User\My Documents\
Microsoft Press\Sql2005SBS_AppliedTechniques\Chapter08\
EmployeeList.xls')...[Employees$] VALUES ("99",
"Doe",
"John",
"Tester",
"Mr.",
'12/06/1964',
"5/1/1995",
"507 20th Ave. S.",
"Seattle",
"WA",
"98122",
"USA",
"(206) 555-9857",
"5467",
"testing",
"2")

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

После того, как вы создали связанный сервер при помощи хранимой процедуры sp_addlinkedserver, можно использовать эту ссылку для выполнения предложений INSERT, UPDATE и DELETE в удаленной таблице с полным уточненным именем.

Следующий код демонстрирует этот метод на примере удаленной базы данных SQL Server. (Код из этого раздела можно найти в файлах примеров в папке SqlScripts под именем UsingLinkedServerToUpdate.sql ).

EXEC sp_addlinkedserver @server = "SalesServer",
@srvproduct=N'SQL Server' GO
DELETE SalesServer.SalesDB.Sales.Orders WHERE Quarter = 3

Для того, чтобы использовать функцию OPENQUERY, вместо определения выполняемого запроса нужно указать имя таблицы, в которой нужно выполнить операции INSERT, UPDATE или DELETE.

Следующий код показывает этот метод на примере файла Excel.

EXEC sp_addlinkedserver
@server = "MyEmployees",
@srvproduct = "Jet 4.0",
@provider = "Microsoft.Jet.OLEDB.4.0",
@datasrc = "C:\Documents and Settings\User\My Documents\ Microsoft Press\Sql2005SBS_AppliedTechniques\ Chapter08\EmployeeList.xls',
@provstr = "Excel 8.0" GO
UPDATE OPENQUERY(MyEmployees, "SELECT * FROM [Employees$]") SET LastName = "Newname" WHERE Region = "CA"

Заключение

В этой лекции речь шла, главным образом, о том, как читать и записывать данные на удаленном источнике. Удаленные источники данных могут представлять собой другие экземпляры сервера SQL Server или источники данных других типов. Все действия, которые были описаны выше, можно выполнять через инструкции T-SQL. SQL Server Management Studio предоставляет интерфейс пользователя для управления удаленными источниками данных.

Краткий справочник по 4 лекции

Чтобы Выполните следующие действия
Иногда выполнять запросы к удаленному источнику посредством отправки транзитного запроса Используйте функцию OPENROWSET.
Иногда выполнять запросы к удаленным ресурсам посредством ссылки на объект с использованием четырехкомпонентного имени Используйте функцию OPENDATASOURCE.
Создать новый связанный сервер через интерфейс Microsoft SQL Server Management Studio В окне Обозревателя объектов SQLServer Management Studio разверните экземпляр SQL Server, откройте папку Server Objects (Объекты сервера), а затем папку Linked Servers (Связанные серверы).
Создать новый связанный сервер путем программирования Используйте системную хранимую процедуру sp_addlinkedserver.
Удалить связанный сервер посредством программирования Используйте системную хранимую процедуру sp_dropserver.
Часто выполнять запросы к удаленному ресурсу посредством отправки транзитного запроса Определите связанный сервер и используйте функцию OPENQUERY.
Часто выполнять запросы к удаленным ресурсам посредством ссылки на объект с использованием четырехкомпонентного имени Определите связанный сервер и используйте идентификатор связанного сервера в качестве компонента <ИмяСервера> полного уточненного имени.
Часто выполнять инструкции DDL и хранимые процедуры в отношении удаленного ресурса Определите связанный сервер и используйте конструкцию EXECUTE…AT.
< Лекция 3 || Лекция 4: 12345 || Лекция 5 >
Гаральд Егоркин
Гаральд Егоркин
Россия
Павел Шелякин
Павел Шелякин
Россия