对INTO子句的简单查询。当我尝试以下语句时,无论表是否存在,项都会被推送到CustomersBackup2013。
SELECT *
INTO CustomersBackup2013
FROM Customers;
然而,当我尝试在MERGE中使用into子句时
MERGE TargetTable tt
USING SyncTable st on <condition>
.
.
WHEN Not MATCHED BY SOURCE
DELETE
OUTPUT deleted.* INTO #Sometemptable;
我收到错误,指出无效的对象名称'#Sometemptable'
如果它不存在,它是否应该创建表?有什么我做错了。
有什么方法可以修改子句以将项目推送到#Sometemptable?
答案 0 :(得分:1)
不,表必须存在才能使output
子句起作用。
首先创建#temp表,然后输出已删除的值。临时表中的列必须与按顺序和类型的输出匹配。
答案 1 :(得分:0)
select into table
会创建一个表格。它很像oracle的create table as select
。见select into table
merge
仅插入,更新或删除