Я пытаюсь скопировать данные таблицы из резервной базы данных-заглушки в нашу базу данных в реальном времени (как авария произошла в нашей программе Visma Business, где кто-то управлял чтобы перезаписать 1300 имен клиентов), но мне сложно определить идеальный код для этого, я огляделся и да, есть несколько подобных проблем, но я просто не могу заставить это работать, хотя я пробовал различные решения.Попытка скопировать одну таблицу из другой базы данных в другую в SQL Server 2008 R2
Вот простой код, который я использовал в прошлый раз, теоретически все, что мне нужно, это эквивалент mysqls On Duplicate, который будет MERGE на SQL-сервере? Я просто не совсем знал, что писать, чтобы заставить это слияние работать.
INSERT [F0001].[dbo].[Actor]
SELECT * FROM [FDummy].[dbo].[Actor]
Сообщение об ошибке я получаю с этим: Нарушение ограничения PRIMARY KEY 'PK__Actor. Невозможно вставить дубликат ключа в объект 'dbo.Actor'.
Так что вы хотите, чтобы все записи в F0001.dbo.Actor быть обновлены с данными FDummy.dbo. Актер, если он существует, иначе вставьте данные из FDummy.dbo.Acor? –
Если это только имена, которые были перезаписаны, (поэтому идентификаторы клиентов должны быть одинаковыми в резервной и живой системе?), Почему бы просто не генерировать операторы обновления из выбранного в вашей резервной копии? STH.например, 'SELECT 'UPDATE Customer SET Name =' + Name + 'WHERE CustomerID =' + CAST (CustomerID AS NVARCHAR (MAX)) FROM Customers WHERE ID IN (диапазон идентификаторов, где имя перезаписывается)' – DrCopyPaste
Да, я хочу всю информацию обновлено с Fdummy до f0001, так как я думаю, что было бы проще сделать то только имена? или я могу быть бредовым там. – Tommy