Member 12727134 Ответов: 2

Как синхронизировать две таблицы базы данных, где одна база данных живая, а другая нет


Привет всем,

Как я могу синхронизировать две базы данных, совместно использующие один и тот же сервер? У меня есть таблицы в каждой базе данных. Если в моей живой базе данных есть какие-то новые записи в ее таблицах. Как я могу сравнить с другой таблицей базы данных и добавить ее в другую таблицу ?

Например, как я могу вставить данные,которые добавлены новыми в таблицу 1 "C,D, E", в таблицу 2


Спасибо!

Что я уже пробовал:

Вещи, которые я пробовал:
INSERT INTO  [Database2].[dbo].[Table2]
SELECT * FROM [database1].[dbo].[Table1]


этот запрос снова вставляет все данные в таблицу 1, как его можно синхронизировать все время, чтобы в случае появления каких-либо новых данных в Таблице 1 он обновлялся в таблицу 2

Таблица 1 : оперативные данные
| Field1 | Field2 | Field3 |
 | ------ | ------ | -----: |
 |  A     |   1    |  10   |
 |  B     |   2    |  20   |
 |  C     |   3    |  30   |
 |  D     |   4    |  40   |
 |  E     |   5    |  50   |


Таблица 2 :
| Field1 | Field2 | Field3 |
 | ------ | ------ | -----: |
 |  A     |   1    |   10   |
 |  B     |   2    |   20   |

2 Ответов

Рейтинг:
2

Member 13632036

Если у вас есть отличное значение в поле Field1, вы можете попробовать это

Вставить в [Database2].[dbo].[Таблица2]

Выберите * из [database1].[dbo].[Таблица 1] с(nolock)
где Field1 not in (выберите Field1 из [Database2].[dbo].[Таблица 2] с(nolock) )


Рейтинг:
1

Maciej Los

Кажется, ты говоришь о ... Зеркальное отображение базы данных (SQL Server) | Майкрософт Документы[^], что является лучшим вариантом для вас.
Если ваша неживая база данных находится на том же сервере, вы можете захотеть создание хранимой процедуры[^] который вставляет данные в живую базу данных, а затем в зеркальную базу данных.