如何同时更新并插入到日志表中

时间:2015-06-05 15:57:32

标签: sql sql-server

我有像

这样的表格

太阳风

App Name    ISStatus
WP1000  Mohan   Y
SP1000  Rohan   Y

太阳能

SolarApp    Name    ISStatus
SP1000      Rohan   Y

WindApp Name    ISStatus
WP1000  mohan   Y

如果Appname与表匹配,我需要更新solar和wind的数据 WP1000与wind table匹配然后我需要更新Isstatus ='N' 和 SP1000与solar table匹配然后我需要更新Isstatus ='N' 否则什么都不会更新 当我有日志表时,我需要插入所有已更新的太阳能和风表数据,如

logId appname name ISstatus
1      SP1000 Mohan Y
2      WP1000 Rohan Y

你能建议做什么是最好的方式

1 个答案:

答案 0 :(得分:1)

从SQL Server 2005开始,您可以使用'输出到' sql语句的子句。 创建表LOG后,您可以:

UPDATE Solar SET ISSStatus ='N' WHERE Solarapp = 'SP1000'
OUTPUT inserted.appname, inserted.name, deleted.ISSstatus INTO LOG(appname, name,issstatus)

UPDATE Wind SET ISSStatus ='N' WHERE Windapp = 'WP1000'
OUTPUT inserted.appname, inserted.name, deleted.ISSstatus INTO LOG(appname, name,issstatus)

或者您可以将结果输出到临时表中,并将输出的记录合并到另一个表中。在这种情况下,这个额外步骤似乎不是必要的。