我希望output子句返回源键和目标键,如下所示:
INSERT INTO sales.stores(store_id,store_name)
OUTPUT deleted.store_id,deleted.store_name, inserted.store_id,inserted.store_name
VALUES (4,'Adidas'),(5,'Nike')
我有以下错误:
The multi-part identifier "deleted.store_id" could not be bound.
The multi-part identifier "deleted.store_name" could not be bound.
2条答案
按热度按时间9avjhtql1#
说清楚,在
INSERT
,UPDATE
,和DELETE
语句中,只能引用目标表中的列OUTPUT
条款。在一个MERGE
语句可以引用目标和源中的列。这不能直接在insert语句中完成,因为您无权访问源表。所以您需要在这里使用merge语句:
这个
INSERT
仅当合并条件为false时才允许。pdkcd3nj2#
这是一种记录在案的行为:
DELETED
不能与OUTPUT
合同条款INSERT
声明。如果你仔细想想,这个限制是有意义的,因为
INSERT
语句不会删除任何内容。所以你应该做:
db小提琴演示: