日期:2014-05-19  浏览次数:20494 次

怎样同时update5个表中的相同字段?
table1-table5有相同字段A

UPDATE   table1
SET   A=0

我想把table1-table5一次性更新,请问怎么写sql?

------解决方案--------------------
exec( 'update table1 set A=0 update table2 set A=0 update table3 set A=0 update table4 set A=0 update table5 set A=0 ')
------解决方案--------------------
用触发器应该可以完成吧
------解决方案--------------------
事务也应该可以吧
begin tran T1

update table1 set A=0
update table2 set A=0
update table3 set A=0

commit tran T1

------解决方案--------------------
寫個PROC 也做的到
------解决方案--------------------
在五个表里都加一个触发器,每当更新A字段的时候也更新其它表的A字段。
------解决方案--------------------
最好寫觸發器好一些,現在是5個表,如果是10個呢,不是要寫10條語句
------解决方案--------------------
declare @SqlStr varchar(8000)
select @SqlStr= ' '
select @SqlStr=@SqlStr+ 'UPDATE [ '+[name]+ '] '+ ' SET A=0 '+CHAR(10)
from sysobjects where Xtype=N 'U '
exec(@SqlStr)
------解决方案--------------------
建表的时候用个级联触发器

只需修改主键即可实现所有引用此主键的外键同时修改