在连接表的sql server中更新

时间:2014-09-11 12:28:46

标签: sql sql-server

这是我在sql server中的代码

我有一个错误说“多部分标识符”t2.isactive“无法绑定。”

另外,我想在一个命令和一个命令中进行此更新

感谢您的帮助

UPDATE tb_active_priority_alert  
SET 
priority_alert_guid = t2.priority_alert_guid,
priority_alert_title = t2.priority_alert_title,
priority_alert_zone = t2.priority_alert_zone,
priority_alert_color =t2.priority_alert_color,
priority_alert_allow_cancel = t2.priority_alert_allow_cancel,
priority_alert_time_duration = t2.priority_alert_time_duration,
priority_alert_type = t2.priority_alert_type,
priority_alert_text = t2.priority_alert_text,
web_url =t2.web_url,
video_url = t2.video_url,
video_style = t2.video_style,
banner_playlist_guid = t2.banner_playlist_guid,
signage = t2.signage,
signage_guid = t2.signage_guid,
alert_icon = t2.alert_icon,
isactive ='true',
user_guid =t2.user_guid,
creation_datetime =   GETDATE(),
expiration_datetime = dateadd(MINUTE,t2.priority_alert_time_duration,GETDATE()),
t2.isactive='true'
from  tb_users_priority_alerts  t2 left outer join tb_active_priority_alert t1 on t2.priority_alert_guid =@priority_alert_guid
WHERE t2.priority_alert_guid =@priority_alert_guid;

3 个答案:

答案 0 :(得分:1)

你无法使它发挥作用 声明:

t2.isactive='true'

正在尝试更新与您的对帐单的第一行中所述的表不同的表 更新指令可以更新单个表/对象中的数据;您要做的是一次更新2个不同表中的数据,这是不受支持的 here你可以在SO上找到同样的问题 here您可以找到有关UPDATE的官方MS文档;它没有明确写入,但在每个对要更新的项目的引用中,您会发现一个对象作为目标,甚至在语法指南中也只有一个目标。

您可以在事务中使用2个单独的更新语句。

答案 1 :(得分:0)

您在使用t1加入时出错。您必须在特定的id / value / whatever上加入这两个表。

试试这个:

from  tb_users_priority_alerts  t2 
left join tb_active_priority_alert t1 on t2.priority_alert_guid = t1.priority_alert_guid

而不是t2.priority_alert_guid = @ priority_alert_guid

答案 2 :(得分:0)

在您的查询中,您显示isactive =' true'即使我认为是积极的,它也会引发错误 两个表中的列和这里你都没有提到tb_active_priority_alert.isactive,所以它给出了错误。

你再次提到t2.isactive =' true'所以不需要isactive =' true'两次在这里。