sql - 如果我从一个完全不相关的表中更新一个表,MS SQL Server 会做什么
问题描述
所以说我有两张桌子,TableA
并且TableB
. 它们完全不相关。它们没有公共列,没有外键约束等。
看来我可以执行
UPDATE TableA SET some_column = b.unrelated_column FROM TableB b;
并且它没有错误地完成。
但是这里发生了什么?没有有意义的方法来匹配两个表中的行,那么 SQL Server 在做什么呢?
解决方案
来自UPDATE
最佳实践:
指定 FROM 子句以提供更新操作的条件时要小心。如果 UPDATE 语句包含未指定的 FROM 子句,则该语句的结果未定义,使得每个更新的列出现只有一个值可用
好吧,这里肯定是这样!所以发生的情况是,表 A 的每一行都将其some_column
值设置为表 B中的任意值。 unrelated_column
推荐阅读
- middleware - GET 以外的代理请求与 NestJS 和 http-proxy-middleware 挂起
- ruby-on-rails - Rspec rubocop错误`更喜欢使用验证双打而不是普通双打'
- java - OpenCV Grabcut 仅输出标记为 GC_FGD 的内容
- openlayers - OpenLayers - 使用 ol/control/Control 比定义定制控件有什么好处?
- c++ - 传递带有隐式参数 C++ 的函数指针
- docker - docker [Errno 2] ip6tables v1.6.1: can't initialize ip6tables table `filter': Table does not exist (你需要insmod吗?)
- c# - 计算一段时间内每小时的每小时分钟数
- android - Android_ID (SSAID) 用于跟踪 Android 10 及更高版本的设备
- android - Flutter Always 后台服务
- c# - 从 UWP 应用程序打印时如何以编程方式设置打印选项?