比较两个 T-SQL 表的差异

2023-11-22

我有同一个数据库的两个实例。第一个数据库代表今天的数据,第二个数据库代表 6 个月前的数据。我需要找到特定表中条目子集的差异。

对于两个表中都有 id 的条目,我想找到一种方法来仅查看不相同的行。

有任何想法吗?

Thanks


SELECT t1.id
FROM table1 t1
INNER JOIN table2 t2 ON t1.id = t2.id
WHERE ISNULL(t1.field1,'') <> ISNULL(t2.field1,'')
      OR ISNULL(t1.field2,'') <> ISNULL(t2.field2,'')
      OR ...

要生成长 WHERE 部分,您可以使用此函数:

CREATE PROCEDURE compareTables
    @db1    NVARCHAR(100),
    @table1 NVARCHAR(100),
    @db2    NVARCHAR(100),
    @table2 NVARCHAR(100)
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @where NVARCHAR(MAX)
    DECLARE @cmd NVARCHAR(MAX)

    SET @where = ''

    SELECT @where = @where + 'ISNULL(t1.' + name + ','''') <> ISNULL(t2.' + name + ','''') OR ' 
    FROM sys.columns WHERE object_id = OBJECT_ID(@table1)

    SET @where = SUBSTRING(@where,1,LEN(@where)-3)

    SET @cmd = 'SELECT t1.id FROM ' + @db1 + '.' + @table1 + ' t1 '
    SET @cmd = @cmd + 'INNER JOIN ' + @db2 + '.' + @table2 + ' t2 ON t1.id = t2.id '
    SET @cmd = @cmd + 'WHERE ' + @where

    EXEC sp_executesql @cmd
END
GO

用法示例:

EXEC compareTables 'db1_name','dbo.table1','db2_name','dbo.table1'

请记住将架构放在表名称中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

比较两个 T-SQL 表的差异 的相关文章

  • SQL 错误:“没有这样的表”

    我试图解决为什么我的代码为所有查询返回 null 的原因 最后发现 sql 查询什么也没有返回 我使用简约代码创建了一个新的 AIR 文档 s WindowedApplication
  • 如何避免使用 Cursor 来实现此伪代码 - SQL Server

    CREATE PROCEDURE p processDataFor accountId BEGIN for each item in select from Accounts where accountId accountId and is
  • 给定“java.sql.SQLIntegrityConstraintViolationException”是否可以确定错误的列

    鉴于我有一个类型为 java sql SQLIntegrityConstraintViolationException 的异常 是否可以以编程方式确定错误的列 或多列 我问这个问题是因为我想将错误映射回客户端的数据模型以指示错误的字段 例如
  • date_sub 对于 mysql 可以,对于 postgresql 可以

    此查询适用于 mySQL 不适用于 Postgresql select from where id and h gt date sub now INTERVAL 30 MINUTE 错误是 Query failed ERREUR erreu
  • 将 SQL Server 与 Dart 结合使用

    我还没有找到很好的答案 所以我想尝试一下得到答案 将 Microsoft SQL Server 与 Dart 结合使用的最佳方式是什么 我需要它能够从基本上任何操作系统 网络和移动设备上使用它 我觉得最好的方法可能是 GraphQL 但我对
  • 在 MySQL 中对整数字段运行带引号的数字(字符串)查询时会发生哪些复杂情况

    在 SQL 中 不应引用整数 因为如果引用 它将是一个字符串 但我很好奇如果我这样做会出现什么问题 并发症 例如 SELECT FROM table WHERE id 1 正确的 vs SELECT FROM table WHERE id
  • 同时使用 GUID 和自动递增整数

    我一直在研究使用 GUID 作为数据库中的主键 到目前为止 利似乎大于弊 然而 我发现 GUID 可能不是我想要的 在我的应用程序中 用户应该能够根据用户友好的 ID 来识别对象 因此 例如 如果他们想要获取特定产品而不输入全名 则可以使用
  • MySQL“LIKE”搜索不起作用

    我通过 LOAD DATA INFILE 在 MySQL 中导入了一个 txt 数据库 一切似乎都正常 唯一的问题是 如果我使用以下查询在数据库上搜索记录 SELECT FROM hobby WHERE name LIKE Beading
  • 将 .MDF SQL Server 数据库与 ASP.NET 结合使用与使用 SQL Server

    我目前正在 ASP NET MVC 中编写一个网站 我的数据库 其中还没有任何数据 只有正确的表 使用 SQL Server 2008 我已将其安装在我的开发计算机上 我使用服务器资源管理器从应用程序连接到数据库 然后使用 LINQ to
  • 有没有办法阻止 SQL Express 2008 空闲?

    我使用 SQL Express 2008 作为 Web 应用程序的后端 问题是 Web 应用程序是在工作时间使用的 因此有时在午餐或休息时间 如果 20 分钟内没有用户登录 SQL Express 将进入空闲状态模式并释放其缓存 我知道这一
  • Linq To SQL - 拥有和分组依据

    我下面这个查询工作正常 不过我想使用 Linq 来实现它 select u ID u NAME from Task t join BuildingUser bu ON bu ID BUILDING t ID BUILDING join Us
  • 如何在实体框架中完全锁定一行

    我正在处理的情况是我们正在处理金钱交易 例如 我有一个用户钱包表 其余额位于该行 UserId Wallet Id Balance 现在 在我们的网站和网络服务中 每次发生特定交易时 我们都需要 检查是否有足够的资金可用于执行该交易 从余额
  • 只获取倒数第二条记录 - mysql-query

    我有一个如下表记录 my table id rating description 1 0 0 bed 2 1 0 good 3 0 0 bed 4 1 0 good 5 0 0 bed 6 0 0 bed 7 0 0 bed 现在我通过评级
  • SQL Join 列上类似于另一列[重复]

    这个问题在这里已经有答案了 可能的重复 mysql连接查询使用like https stackoverflow com questions 1930809 mysql join query using like 我想要进行连接 其中一列包含
  • SQL Server 2008R2 和创建 XML 文档

    论坛上的第一篇文章 因为我真的被这个问题困住了 以下查询正确地将有效的 XML 文档分配给 xTempXML 变量 类型为 xml 注 文档的长度 转换为varchar max 711 select xTempXML select Pres
  • Oracle:如何获取刚刚插入的行的序列号?

    如何获取刚刚插入的行的序列号 插入 返回 declare s2 number begin insert into seqtest2 x values aaa returning seq into s2 dbms output put lin
  • 实现软删除的最佳方法是什么?

    目前在做一个项目 我们要对大部分用户 用户角色 实现软删除 我们决定添加一个is deleted 0 数据库中每个表的字段并将其设置为 1 如果特定用户角色点击特定记录上的删除按钮 现在为了将来的维护 每个SELECT查询需要确保它们不包含
  • SQL返回两行之间的秒差

    这个问题与SQL Server有关 我有下表 id size batch code product code additiontime 1 91 55555 BigD Red 2017 05 15 13 00 00 2 91 55555 B
  • C# 中处理 SQL 死锁的模式?

    我正在用 C 编写一个访问 SQL Server 2005 数据库的应用程序 该应用程序是数据库密集型的 即使我尝试优化所有访问 设置适当的索引等 我预计迟早会遇到死锁 我知道为什么会发生数据库死锁 但我怀疑我能否在某个时候发布不发生死锁的
  • 在 SQL Server 上执行分页的最佳方式是什么?

    我有一个数据库超过200万记录 我需要执行分页以在我的 Web 应用程序上显示 该应用程序每页必须有 10 条记录DataGrid 我已经尝试使用ROW NUMBER 但是这种方式会选择所有 200 万条记录 然后只得到 10 条记录 我也

随机推荐

  • C# 问题:如何将 DataGridView 中所做的更改保存回所使用的 DataTable?

    我从 DataSet 获取 DataTable 然后将该 DataTable 绑定到 DataGridView 一旦用户编辑了 DataGridView 上的信息 我如何获取这些更改并将它们放回到使用过的 DataTable 中 然后我可以
  • 为什么 SonarQube 重新打开标记为误报的问题?

    我们的组织刚刚开始使用 SonarQube 我们看到了一些对我们来说似乎很奇怪的东西 我们有一个插件 允许用户将问题标记为 误报 但我们标记为 误报 的任何问题都会在下次 SonarQube 运行时将其状态重置为 打开 对于标记为 无法修复
  • 使用 Python 以编程方式检测 Windows XP 上的系统代理设置

    我开发了一家跨国公司使用的关键应用程序 全球各地办公室的用户都需要能够安装此应用程序 该应用程序实际上是 Excel 的一个插件 我们有一个基于 Setuptools 的 easy install 的自动安装程序 可确保用户每次打开 Exc
  • 将导航控制器与选项卡栏控制器相结合

    正如我在标题中提到的 我想添加Navigation Controller到我的应用程序已经有一个Tab Controller 所以尝试给员工做一些类似的事情page 无论如何 有些事情是错误的 UINavigationController正
  • 将块内的变量分配给块外的变量

    我收到错误 变量不可分配 缺少 block 类型说明符 在线上aPerson participant 我怎样才能确保该块可以访问aPerson变量和aPerson变量可以返回吗 Person aPerson nil participants
  • .NET 4.0 和 .NET 4.7.2 标头选择之间 DataGridView 的重大变化

    我最近迁移了一个项目 NET 4 to NET 4 7 2其中引入了 WinForms DataGridView 标头的更改 Pre Migration looks like this As you can see the Header o
  • 在 Spring MVC 中将文件路径作为 @PathVariable 发送

    有一个任务将文件路径传递为 PathVariable在 Spring MVC 到 REST 服务中GET要求 我们可以轻松地做到这一点POST发送 JSON 格式的文件路径字符串 我们可以怎样做GET请求和 Controller像这样 Re
  • iOS应用审核流程:应用需要外部硬件(通过WiFi连接)

    我们为客户编写了一个应用程序 通过 Wifi 连接到外部硬件 由我们客户设计的硬件 我的问题是 我们如何提交此供审核 没有硬件 软件就起不到多大作用 需要明确的是 该硬件并不通过电缆直接连接到 iPad 而是仅通过 WiFi 连接 我只是想
  • 解析logstash列表中的json

    我有一个 json 形式的 foo bar 我正在尝试使用logstash 中的json 过滤器来过滤它 但这似乎不起作用 我发现我无法使用logstash中的json过滤器解析列表json 有人可以告诉我这个问题的任何解决方法吗 UPDA
  • 带 bo​​otstrap 的水平按钮切换

    我试图获得一个按钮来水平展开 折叠其他元素 共享按钮 并使用引导框架内联 我在两件事上失败了 该按钮不会展开内联和实际 按钮之后的其他元素 当它向后折叠时 其中的元素会打破行并堆叠在一起 我准备了一把小提琴 http jsfiddle ne
  • SSRS 的性能问题[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 大家好 最近我加入了一家公司 他们给我分配的一项任务是提高现有 SSRS 报告的性能 我
  • 历史记录replaceState不再在Chrome中为本地文件工作

    我正在使用 window history replaceState 更改使用 file C 访问的 HTML 文件的查询字符串 这曾经适用于 Chrome Internet Explorer 和 FireFox 但不再适用于 Chrome
  • 如何从 Java 漂亮地打印 XML?

    我有一个包含 XML 的 Java 字符串 没有换行或缩进 我想将其转换为具有格式良好的 XML 的字符串 我该怎么做呢 String unformattedXml
  • 如何解决DTS_E_OLEDBERROR。在ssis中

    在一个ssis包中由数据流任务组成 包含 OLEDB 源和 OLDB 目标 provider 是 sql 本机客户端 这曾经运行良好 但现在出现错误 如下所示 请告诉我如何解决它 将其更改为ado net 操作系统 windows 7 pr
  • 使用 Python 读取文件并绘制 CDF

    我需要读取带有时间戳 以秒为单位 的长文件 并使用 numpy 或 scipy 绘制 CDF 绘图 我确实尝试过使用 numpy 但似乎输出不是它应该的样子 下面的代码 任何建议表示赞赏 import numpy as np import
  • 离散数据拟合:负二项式、泊松分布、几何分布

    在 scipy 中 不支持使用数据拟合离散分布 我知道有很多关于这个的话题 例如 如果我有一个如下所示的数组 x 2 3 4 5 6 7 0 1 1 0 1 8 10 9 1 1 1 0 0 我无法申请这个数组 from scipy sta
  • 如何调整一个克隆的形状/尺寸以影响场景视图中的所有其他克隆

    我想通过调整一个来更改 调整场景视图中多个克隆对象的形状 尺寸 该对象可以是需要扩展的四边形或线渲染器 例如 当一个游戏对象线渲染器在场景视图中扩展 使用鼠标 时 所有其他克隆都会受到影响 我知道在克隆一个对象之前调整它的形状 尺寸要简单得
  • LINQ 查询返回第一个结果的多个副本

    我在数据库中定义了一个视图 archiveContentPreviews 它将多个表连接在一起 并且在 Linq 中它有一个实体键 ArchiveID 我想使用以下简单查询来查询此视图 var x from fields in entiti
  • 纵向数据

    I ve been working with the R Orthodont dataset in the nlme package Just use install packages nlme library nlme head Orth
  • 比较两个 T-SQL 表的差异

    我有同一个数据库的两个实例 第一个数据库代表今天的数据 第二个数据库代表 6 个月前的数据 我需要找到特定表中条目子集的差异 对于两个表中都有 id 的条目 我想找到一种方法来仅查看不相同的行 有任何想法吗 Thanks SELECT t1