Межсерверный SQL

Я хочу перенести данные из базы данных одного сервера в базу данных другого сервера. Обе базы данных находятся на другом сервере mssql 2005. Репликация, вероятно, не вариант, поскольку целевая база данных создается с нуля на основе [интервал времени].

Лучше бы я сделал что-нибудь вроде

insert *
from db1/table1
into db2/table2
where rule1 = true

Очевидно, что учетные данные для подключения будут где-то в этом скрипте.

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
33
0
51 715
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Можете ли вы использовать службы преобразования данных для выполнения этой работы? Это предоставляет всевозможные инструменты для выполнения подобных задач.

Вы можете загрузить пакет функций SQL Server 2005 с веб-сайта Microsoft. здесь

Как вы, наверное, знаете, SSIS - это «новый» DTS для SQL Server 2005+.

Galwegian 16.09.2008 12:53

Возможны ли службы интеграции SQL Server (SSIS)? Если так, я бы использовал это.

Ответ принят как подходящий

Я думаю, что вы хотите создать связанный сервер в соответствии со статьей это msdn. Затем вы должны выбрать, используя имя объекта из 4 частей, например:

Select * From ServerName.DbName.SchemaName.TableName

Немного поздно, но я только сейчас вернулся к этому вопросу, и да, это похоже на ответ на мой вопрос. Хотя к настоящему времени я понимаю, что мой вопрос должен был быть вопросом к ответу, который я выбрал. Все становится немного сложнее ...

Boris Callens 15.12.2009 15:41

Ссылка битая :-(

Fabian Pijcke 03.04.2019 09:41

Вы бы перенесли все содержимое базы данных с одного сервера на другой или только некоторые данные из пары таблиц?

Для обоих вариантов SSIS выполнит свою работу, особенно если вы планируете переносить данные на регулярной основе.

Если вы просто хотите скопировать некоторые данные из 1 или 2 таблиц и предпочитаете делать это с помощью TSQL в SQL Management Studio, вы можете использовать связанный сервер, как это было предложено pelser

  1. Настройте исходный сервер базы данных как связанный сервер
  2. Используйте следующий синтаксис для доступа к данным
select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName

Что ж, я не согласен с вашим комментарием о репликации. Вы можете запустить репликацию, создав базу данных с нуля, и вы можете контролировать, будут ли обновления выполняться путем обновления доступной клиентской базы данных или просто воссоздавая базу данных.

Автоматическая репликация упростит вашу работу за счет автоматического управления ключами и связями.

Я думаю, что проще всего запустить репликацию моментального снимка через MSSQL Server Studio, получить соответствующие сценарии T-SQL (т.е. соответствующие инструкции T-SQL как для публикации, так и для подписок) и записать эти сценарии как часть задания в список заданий агента SQL или как задание репликации в папке репликации.

Вы можете пойти по маршруту связанного сервера.

вы просто не можете использовать select *, вам нужно сделать вставку в select.

Я бы избегал репликации, если у вас нет опыта работы с ней, поскольку это может быть трудно исправить, если оно сломается, и может быть подвержено другим проблемам, если не управлять должным образом.

Будьте проще, особенно если базы данных небольшие.

Вы можете использовать открытый источник данных следующим образом:

EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO

EXEC sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO


SELECT  *
FROM    OPENDATASOURCE('SQLOLEDB',
                   'Data Source=<Ip Of Your Server>;
                    User ID=<SQL User Name>;Password=<SQL password>').<DataBase name>.<SchemaName>.<Table Or View Name>

Go

Круто, не знал, что это существует. С другой стороны, technet.microsoft.com/en-us/library/ms179856.aspx говорит, что для этого должны быть явные regedits.

Boris Callens 09.09.2013 15:20

CREATE VIEW newR1 
AS
SELECT * from OPENQUERY ([INSTANCE_NAME], 'select * from DbName.SchemaName.TableName')

Для этого также требуется связанный сервер, так что в основном это просто еще один вид запроса, следующий за тем же предложением, которое уже было сделано несколько лет назад.

Magier 11.07.2017 11:04

Другие вопросы по теме