Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server t-sql中的奇怪语法错误_Sql Server_Tsql - Fatal编程技术网

Sql server t-sql中的奇怪语法错误

Sql server t-sql中的奇怪语法错误,sql-server,tsql,Sql Server,Tsql,我试图编写一个查询,从一个表中删除记录,并将删除的记录输出到另一个类似(但不完全相同)的表中 以下代码是我正在尝试执行的操作: delete from MyServer.dbo.t1 output deleted.colA into MyServer.dbo.t2.colA 它引发错误,在sys.servers中找不到服务器“MyServer” 但是,我能够运行以下代码(基本上没有操作)(使用有效的服务器名称): 所以基本上t-sql的错误消息似乎没有意义——所以我不确定该怎么办 为什么t-s

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

以下代码是我正在尝试执行的操作:

delete from MyServer.dbo.t1
output deleted.colA into MyServer.dbo.t2.colA
它引发错误,在sys.servers中找不到服务器“MyServer”

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

所以基本上t-sql的错误消息似乎没有意义——所以我不确定该怎么办

  • 为什么t-sql会抛出这个奇怪的错误?为什么它有时能在sys.servers中“看到”MyServer,而其他时间却看不到

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


  • 在语法中使用3
    时,指定的是
    server.database.schema.table
    。您试图在末尾添加不起作用的列。去掉
    .colA

    当您在语法中使用3
    时,您指定的是
    服务器.database.schema.table
    。您试图在末尾添加不起作用的列。扔掉
    .colA

    谢谢!如何在没有“三点”语法的情况下指定列名?当我按照您的建议删除列A时,我得到的列名称或提供的值的数量与表定义不匹配,因为源表的列数比目标表的列数多。不幸的是,这是您尝试执行的操作的一个限制,您必须插入到与正在提取的架构匹配的表中。谢谢!如何在没有“三点”语法的情况下指定列名?当我按照您的建议删除列A时,我得到的列名称或提供的值的数量与表定义不匹配,因为源表的列数比目标表的多。不幸的是,这是您尝试执行的操作的一个限制,您必须插入到与您要提取的架构匹配的表中。
    delete from MyServer.dbo.t1
    output deleted.* into MyServer.dbo.t1