这是我在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;
答案 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'两次在这里。