是否存在与 MySQL 的 "CHECKSUM TABLE" 等效的 Azure SQL 数据库,是否应该使用它来检查两个表是否相同?
Is there an Azure SQL Database equivalent to MySQL's "CHECKSUM TABLE", and should it be used to check if two tables are identical?
我正在寻找一种方法来检查同一数据库中的两个表是否相同(内容和模式),然后过来 this question。
问题的 top answer 使用(根据我的理解)特定的 MySQL。尝试 运行 Azure SQL 数据库中的代码时出现此错误:Incorrect syntax near the keyword 'TABLE'.
.
我们没有使用 CHECKSUM TABLE
来查看两个表是否相同,而是使用了以下两个查询:
select * from util.table1
except
select * from dbo.table2
select * from dbo.table2
except
select * from util.table1
所以我基本上有三个问题:
- Azure SQL 数据库是否有等同于 this query 的数据库?
- 我们甚至应该使用该查询来检查两个表是否相同吗?
- 我们选择的选项(使用 except)是否可行?如果不是,为什么不,我们可以做些什么更好?
Azure 中的 CHECKSUM 函数 SQL 数据库 returns [=41] 计算的校验和值=] 行,或表达式列表。 Checksum returns 其参数列表的哈希值。
示例:
在下面的示例中,校验和值 returns 是 table 行的计算值。
要比较两个 table 的数据,最好的方法是使用 EXCEPT.
EXCEPT returns any distinct values from the query left of the EXCEPT operator. Those values return as long the right query doesn't return those values as well.
表格数据:
除了:
我正在寻找一种方法来检查同一数据库中的两个表是否相同(内容和模式),然后过来 this question。
问题的 top answer 使用(根据我的理解)特定的 MySQL。尝试 运行 Azure SQL 数据库中的代码时出现此错误:Incorrect syntax near the keyword 'TABLE'.
.
我们没有使用 CHECKSUM TABLE
来查看两个表是否相同,而是使用了以下两个查询:
select * from util.table1
except
select * from dbo.table2
select * from dbo.table2
except
select * from util.table1
所以我基本上有三个问题:
- Azure SQL 数据库是否有等同于 this query 的数据库?
- 我们甚至应该使用该查询来检查两个表是否相同吗?
- 我们选择的选项(使用 except)是否可行?如果不是,为什么不,我们可以做些什么更好?
Azure 中的 CHECKSUM 函数 SQL 数据库 returns [=41] 计算的校验和值=] 行,或表达式列表。 Checksum returns 其参数列表的哈希值。
示例:
在下面的示例中,校验和值 returns 是 table 行的计算值。
要比较两个 table 的数据,最好的方法是使用 EXCEPT.
EXCEPT returns any distinct values from the query left of the EXCEPT operator. Those values return as long the right query doesn't return those values as well.
表格数据:
除了: