Я изучаю распределенные запросы и использую SQL Server 2008 для практики.
Я успешно получил данные со связанного сервера с помощью оператора OPENROWSET
.
Теперь я хочу обернуть некоторые операторы модификации данных в транзакцию и выполнить на связанном сервере. Как мне это сделать? Эта транзакция такая же, как и транзакция на локальном сервере?
Кроме того, как мне реализовать настройки безопасности, чтобы кто-то не мог получить пароль для входа на связанный сервер? Пароль является параметром процедуры sp_addlinkedsrvlogin
.
1 ответ
Запрос должен будет участвовать в распределенной транзакции (требуется установка и настройка MSDTC на обоих концах и открытие соответствующих портов в брандмауэре...). По возможности старайтесь не держать открытой транзакцию в распределенных запросах.
Проблема с распределенными транзакциями для связанного сервера в SQL Server 2008
Обновление (в ответ на вопрос, заданный в комментариях):
Из вики:
Системы баз данных реализуют распределенные транзакции как транзакции для нескольких приложений или хостов. Распределенная транзакция применяет свойства ACID к нескольким системам или хранилищам данных и может включать такие системы, как базы данных, файловые системы, системы обмена сообщениями и другие приложения. В распределенной транзакции служба координации обеспечивает применение всех частей транзакции ко всем соответствующим системам. Как и в случае с базой данных и другими транзакциями, в случае сбоя какой-либо части транзакции выполняется откат всей транзакции во всех затронутых системах.
Похожие вопросы
Новые вопросы
sql-server
Microsoft SQL Server — это система управления реляционными базами данных (RDBMS). Используйте этот тег для всех выпусков Microsoft SQL Server, включая Compact, Express, Azure, Fast-track, APS (ранее PDW) и Azure SQL DW. Не используйте этот тег для других типов СУБД (MySQL, PostgreSQL, Oracle и т. д.). Не используйте этот тег для вопросов по программному обеспечению и разработке мобильных устройств, если только он не связан напрямую с базой данных.