小编Fnt*_*tic的帖子

sql server如何在有多个选项的update语句中选择值?

我在SQL Server中有一个更新语句,其中有四个可以根据连接分配的值.似乎SQL有一个算法可以选择一个值而不是另一个值,我不确定该算法是如何工作的.

例如,假设有一个名为Source的表,其中两列(匹配和数据)的结构如下:(匹配列只包含1,数据列每行增加1)
匹配数据
`------ --------------------
1 1
1 2
1 3
1 4

该表将更新另一个名为Destination的表,其中两列结构如下:
Match
Data` --------------------------
1 NULL

如果要以下列方式更新Destination中的ID字段:

UPDATE
目标
SET
数据= Source.Data FROM
目标
INNER JOIN

ON
目标.Match = Source.Match

运行此查询后,将有四个可能的选项将Destination.ID设置为.我发现搞乱Source的索引会对Destination的设置产生影响,并且看起来SQL Server只是使用它找到匹配的第一个值来更新Destination表.

那是准确的吗?SQL Server是否可能按顺序更新每个可能值的Destination,并且最终得到的结果与使用它找到的第一个值进行更新时的结果相同?似乎可能有问题的是,它似乎随机选择一行进行更新,而不是在出现这种情况时抛出错误.

谢谢.

PS我为糟糕的格式道歉.希望,意图很明确.

sql-server

6
推荐指数
1
解决办法
2244
查看次数

标签 统计

sql-server ×1