我有一个更新查询来更新表中的记录,当我对要更新的条件进行选择时,它显示存在与条件匹配的715条记录,但是当我运行更新查询时,只有15条记录得到更新。谁能帮我这个。我已将excel表中的数据加载到临时表中进行比较。
BEGIN TRAN
UPDATE table1
SET English = CASE
WHEN English <> t.name THEN t.name
else English
END
FROM #tempdata t
LEFT JOIN dbo.Main m
ON m.Code= t.[property]
LEFT JOIN table1 tbv
ON m.filterkey= tbv.filterkey
where t.name != tbv.English
ROLLBACK TRAN
答案 0 :(得分:4)
最有可能的联接是从table1
复制您的数据。以下是复制的测试场景:
SET NOCOUNT ON
DECLARE @table1 TABLE(id INT, col INT)
DECLARE @table2 TABLE(id INT, rel_id int)
INSERT INTO @table1 VALUES(1, NULL),(2, null)
INSERT INTO @table2 VALUES(1, 1),(2, 1),(3,2)
SELECT * FROM @table1 t1
JOIN @table2 t2 ON t2.rel_id = t1.id
SET NOCOUNT OFF
UPDATE t1 SET col = t2.id
FROM @table1 t1
JOIN @table2 t2 ON t2.rel_id = t1.id
这会选择3,但只更新2行。