使用" MS SQL Server迁移工具进行访问"仅迁移数据

时间:2014-09-08 15:04:11

标签: sql sql-server sql-server-2012

我使用“SQL Server迁移工具进行访问”将表从Access数据库迁移到SQL Server 2012.我使用迁移向导和SQL Server中生成的新表,其中包含Access的不同数据类型和约束。但是我更改并删除了SQL Server中的一些数据类型和约束,以满足我的Web应用程序的要求。

现在,我需要使用Access中的最新数据升级SQL Server表。但是当我再次使用迁移向导时,SQL Server中的数据类型和约束将转换回原始结构。

我的问题是:如何在不更改当前表结构的情况下将数据迁移和升级到SQL Server?我的意思是只向SQL Server添加一些行,但不是所有这些约束。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

我建议您将数据导入SQL Server到临时表1,然后执行upsert(插入,更新)操作。

要将数据导入SQL Server,您可以使用SQL Server的导入/导出向导

enter image description here

enter image description here

然后按照简单的说明将该数据导入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;