gpt4 book ai didi

sql - 如何使用SQL中的输出子句将插入、更新、删除结果输出到新的临时表中?

转载 作者:行者123 更新时间:2023-12-02 13:13:19 25 4
gpt4 key购买 nike

目前,我正在尝试在 SQL Server 中执行更新(但它可以是任何支持 DML statementoutput clause ),并且我想将输出放入本地临时表,如下所示:

update
dbo.MyTable
set
MyField = 30
output
inserted.MyKeyField
into
#myTempTable
from
dbo.MyTable as t
where
f.MyFilteredField = 8

我知道语法是正确的,根据 output 子句的文档(强调我的):

output_table

Specifies a table that the returned rows are inserted into instead of being returned to the caller. output_table may be a temporary table.

也就是说,我希望它能像在 into clause 上一样工作。在 select 语句上,因为它只会创建表。

但是,我收到以下错误:

Invalid object name '#myTempTable'.

如何将 output 子句(inserteddeleted)的结果获取到临时表中?

最佳答案

output 子句不会生成新表,因此您必须generate the table beforehand which matches the structure of what is specified in the output clause ,例如:

select t.MyKeyField into #myTempTable from dbo.MyTable as t where 1 = 0

请注意,您不必使用上面的 select into 语法,create table同样有效。最后,最简单的方法是创建一个与 output 子句中的字段匹配的空临时表。

创建表后,“无效对象名称”错误将消失,并且 DML 语句将无错误地执行(假设没有其他错误)。

关于sql - 如何使用SQL中的输出子句将插入、更新、删除结果输出到新的临时表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10839032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com