1

我们正在尝试通过此查询在另一台服务器上将列更新为另一个数据库中LastUpdateDateTime列的值:Stamp

update [NEWTON-DB].NEWTON.dbo.vital_signs 
set lastupdatedatetime = 
    coalesce ((select top 1 stamp 
               from [SERVER2].NEWTON.dbo.vital_sign 
               where rowguid in (select oldrowguid 
                                 from [NEWTON-DB].NEWTON.dbo.import_log 
                                 where tablename = 'vital_sign' 
                                   and newid = [NEWTON-DB].NEWTON.dbo.vital_signs.id)), 
              coalesce(lastupdatedatetime, getutcdate()))

import_log 表只是内部连接,rowguid如果有意义的话,可以根据旧的 id 获取新的 id。

当他们在同一台服务器上时,此查询运行良好,但迁移后出现以下错误:

无法绑定多部分标识符“NEWTON-DB.NEWTON.dbo.vital_signs.id”。

有没有我们遗漏的明显的东西。提前非常感谢!

4

1 回答 1

3

5 这样的零件标识符[NEWTON-DB].NEWTON.dbo.vital_signs.id不起作用

您需要给表起别名,然后使用别名

例如

Select top 1 stamp 
from [SERVER2].NEWTON.dbo.vital_sign t
where rowguid in (select oldrowguid 
                    from [NEWTON-DB].NEWTON.dbo.import_log 
                    where tablename = 'vital_sign' 
                    and newid = t.id)
于 2013-04-09T20:23:01.150 回答