1

我正在尝试编写一个查询,从一个表中删除记录并将删除的记录输出到另一个类似(但不相同)的表中。

这段代码是我想要做的:

delete from MyServer.dbo.t1
output deleted.colA into MyServer.dbo.t2.colA

它引发错误,在 sys.servers 中找不到服务器“MyServer”。

但是,我能够运行这个(基本上没有操作)代码(使用有效的服务器名称):

delete from MyServer.dbo.t1
output deleted.* into MyServer.dbo.t1

所以基本上t-sql的错误信息似乎没有意义——所以我不知道该怎么办。

  1. 为什么 t-sql 会抛出这个奇怪的错误?为什么它有时可以“看到” sys.servers 中的 MyServer 而其他时候却看不到?

  2. 将特定列的已删除值输出到新表中的正确语法是什么

4

1 回答 1

1

当您.在语法中使用 3 时,您正在指定server.database.schema.table. 您正在尝试在不起作用的末尾添加列。摆脱.colA.

于 2013-02-04T16:12:16.667 回答