【问题标题】:T-SQL - Validate BLOB / varbinary(max) dataT-SQL - 验证 BLOB / varbinary(max) 数据
【发布时间】:2016-12-08 17:49:49
【问题描述】:

数据正在从表 A 迁移到表 B。

表 A 有 2 列 - 一个标识列和一个定义为 varbinary(max) 的列 Content

如何验证表 B 是否已为 Content 列加载了正确的数据? T_SQL 的EXCEPT 运算符是否足够好?有替代方法吗?

谢谢

【问题讨论】:

  • 我尝试了 SQL EXCEPT 并且成功了!但是,我一直在寻找其他可能识别差异的方法。你有什么建议吗?
  • 在“身份”字段上加入 A&B,有一个 where 子句选择 A.data <> B.data 来选择不同的数据。

标签: sql-server tsql varbinarymax


【解决方案1】:

EXCEPT 是这项工作的工具。请注意,与其他 SQL Server set operators 不同,顺序有所不同。这是使用 EXCEPT 进行验证的一种方法:

-- sample data
DECLARE @table1 TABLE (id int identity, content varbinary(max));
DECLARE @table2 TABLE (id int identity, content varbinary(max));

INSERT @table1(content) VALUES (12), (15), (20);
INSERT @table2(content)
SELECT content 
FROM @table1;

--solution
(
  SELECT id, content FROM @table1 
  EXCEPT 
  SELECT id, content FROM @table2
)
UNION ALL 
(
  SELECT id, content FROM @table2
  EXCEPT 
  SELECT id, content FROM @table1
);

【讨论】:

    猜你喜欢
    • 2021-01-31
    • 2021-09-27
    • 2017-01-24
    • 2012-08-26
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    相关资源
    最近更新 更多