使用联接表在sql server中更新

使用联接表在sql server中更新,sql,sql-server,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_ale

这是我在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;

在与t1的联接中出现错误。您必须以特定的id/值/任意值连接这两个表

请尝试以下方法:

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

您在查询中显示的不是t2.priority\u alert\u guid=@priority\u alert\u guid

而是active='true',即使我认为是active,它也会抛出错误 列,在这两个表中,您没有提到tb\u active\u priority\u alert.isactive,因此它会给出错误


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

你不能让它工作。
声明:

t2.isactive='true'
正在尝试更新一个不是语句第一行中所述的表。
更新指令可以更新单个表/对象中的数据;您试图做的是同时更新两个不同表中的数据,这是不受支持的。
你可以在上面找到同样的问题。
您可以找到有关
更新
的官方MS文档;它不是显式编写的,但是在对要更新的项的每个引用中,您都会发现一个对象作为目标,即使在语法指南中,也只需要一个目标。



您可以在一个事务中使用两个单独的update语句。

在t2.priority\u alert\u guid=t1上使用适当的连接条件
。如果不查看表定义,很难判断发生了什么。您可以发布t1和t2的表定义吗?多部分标识符无法绑定错误基本上是说SQL在tb\u active\u priority\u alert t1中找不到isactive列。这太简单了,但这是基本思想。我不能这样做,因为t1将永久性地只有一列,而该列不在t2中,所以我想在没有任何条件的情况下更新t1。为什么要将t1加入select语句?