我有10个表,我想用相同的值更新所有表中的相同字段。更新将一个字段作为条件,该字段是一个表中的主键,而另一个表中是外键,并且有一些表甚至不是键。例如:
TABLEX TABLEY TABLEZ
FIELD1 (PK) FIELD1(FK) FIELD1
FIELD3 FIELD3 FIELD3
我想在所有表中更新FIELD3,并为相同的FIELD1使用相同的值。我被告知使用一个存储过程使用游标a for循环来更新表,并在调查了一下之后我已经阅读了游标,但是效率非常高。我想知道这是最好的方法还是你知道更好的方法。我是sql的新手。
提前谢谢。答案 0 :(得分:2)
你真的不需要使用游标循环 - 一个简单的SQL UPDATE语句在所有10个表上都可以正常工作。但是,您必须发出10个单独的UPDATE语句,没有办法解决这个问题。
注意:如果你使用了动态SQL,你可能会得到更少的代码但是我非常推荐它反对它有很多原因:代码可读性,破坏内置的SQL对象依赖性跟踪,SQL注入可能性...)