执行校验和以检查源表行是否已加载到目标表中

时间:2015-08-10 15:34:13

标签: sql-server tsql sql-server-2000 etl sql-server-2014

我正在尝试将数据从旧的SQL Server 2000加载到新的SQL Server 2014.我需要做一个校验和来检查是否所有源数据都加载到目标数据库中(SQL Server 2014)。

我已经创建了相同的insert语句。我需要使用校验和来确保所有源行都加载到目标表中。有人可以帮我这个吗?

感谢任何帮助。

这是我的插入声明:

INSERT INTO [Test].[dbo].[Order_tab] 
    ([rec_id]
      ,[date_loaded]
      ,[Name1]
      ,[Name2]
      ,[Address1]
      ,[Address2]
      ,[City]
      ,[State]
      ,[Zipcode]
      ,[e_Name1])
      SELECT s.[rec_id]
      ,s.[date_loaded]
      ,s.[Name1]
      ,s.[Name2]
      ,s.[Address1]
      ,s.[Address2]
      ,s.[City]
      ,s.[State]
      ,s.[Zipcode]
      ,ENCRYPTBYKEY(key_guid('EncryptionKey'),s.[Name1])
        FROM [LinkedServer].[SourceTest].[dbo].[Order_tab] s
        left join [Test].[dbo].[Order_tab] d on d.rec_id= s.rec_id
        where d.rec_id IS NULL

1 个答案:

答案 0 :(得分:0)

嗨,这是一个非常天真的解决方案,但如果您只需要一次性检查,那就很快:)

SELECT SUM([rec_id])
FROM [Test].[dbo].[Order_tab]

然后将其与:

进行比较
SELECT SUM([rec_id])
FROM [LinkedServer].[SourceTest].[dbo].[Order_tab]

如果您的ID SUM以上的所有内容都应该相同:)