- 在sql查询中导致语法错误

时间:2015-11-30 14:26:51

标签: sql sql-server sql-server-2008 syntax-error

我正在尝试将数据从一个数据库更新到另一个数据库。它们位于不同的SQL服务器上,但它们是相同的DB(实时服务器和测试服务器)。我的问题是它似乎不喜欢 - 在我的SQL服务器名称中,我不知道如何解决这个问题。这是查询的结构,似乎唯一的问题是 - 在 - 在Intra-intranet中。

update AdditionalInfo
set UserDefined25 = seredixserver.activem_repacorp_live.additionalinfo.userdefined25

from repa-intranet.activem_repacorp_live.additionalinfo 

join seredixserver.activem_repacorp_live.additionalinfo 
on repa-intranet.activem_repacorp_live.additionalinfo.ownerid = seredixserver.activem_repacorp_live.additionalinfo.ownerid

2 个答案:

答案 0 :(得分:2)

使用显式别名和方括号:

update rai
    set UserDefined25 = sai.userdefined25
from [repa-intranet].activem_repacorp_live.additionalinfo rai join
     seredixserver.activem_repacorp_live.additionalinfo sai
     on rai.ownerid = sai.ownerid;

方括号是不够的,因为additionalinfo中的update additionalinfo不明确。两个表都有相同的名称。

另外,别名只会使查询更容易阅读。

答案 1 :(得分:1)

包含-等字符的数据库名称,表名和列名需要用矩形括号[]括起来。

请阅读此article on Delimited Identifiers以获取更多信息。