我使用“SQL Server迁移工具进行访问”将表从Access数据库迁移到SQL Server 2012.我使用迁移向导和SQL Server中生成的新表,其中包含Access的不同数据类型和约束。但是我更改并删除了SQL Server中的一些数据类型和约束,以满足我的Web应用程序的要求。
现在,我需要使用Access中的最新数据升级SQL Server表。但是当我再次使用迁移向导时,SQL Server中的数据类型和约束将转换回原始结构。
我的问题是:如何在不更改当前表结构的情况下将数据迁移和升级到SQL Server?我的意思是只向SQL Server添加一些行,但不是所有这些约束。谢谢你的帮助!
答案 0 :(得分:1)
我建议您将数据导入SQL Server到临时表1,然后执行upsert(插入,更新)操作。
要将数据导入SQL Server,您可以使用SQL Server的导入/导出向导
然后按照简单的说明将该数据导入Temp Staging表。
在SQL Server中获得数据之后,您可以按照以下方式执行UPSERT操作
BEGIN TRANSACTION;
UPDATE Target_Table
SET T.Column1 = S.Column1
,T.Column2 = S.Column2
,T.Column3 = S.Column3
FROM Target_Table T INNER JOIN StaggingTable S
ON T.PrimaryKey = S.PrimaryKey
INSERT INTO Target_Table (Column1 , Column2, Column3)
SELECT S.Column1 , S.Column2, S.Column3
FROM StaggingTable S
WHERE NOT EXISTS (SELECT 1
FROM Target_Table
WHERE PrimaryKey = S.PrimaryKey)
COMMIT TRANSACTION;