SQL OUTPUT CLUASE

本文展示了SQL中的四种基本操作:插入、删除、更新与合并,通过具体实例介绍了如何在数据库中执行这些操作,并展示了操作后的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--OUTPUT CLAUSE
--
1 INSERT WITH OUTPUT
IF OBJECT_ID('Rows') IS NOT NULL DROP TABLE ROWS
CREATE TABLE [ROWS](COL INT IDENTITY(1,1),DATACOL VARCHAR(20))

INSERT INTO [ROWS]
OUTPUT inserted.COL,inserted.DATACOL
SELECT COMPANYNAME FROM Customer
--RESULTS
COL DATACOL
----------- --------------------
1 Microsoft
2 Intel
3 alibaba
4 siemens
5 Bank
6 GOOGLE

(
6 row(s) affected)

-- DELETE WITH OUTPUT
DELETE FROM [ROWS]
OUTPUT deleted.COL,
deleted.DATACOL
WHERE COL<10

-- UPDATE WITH OUTPUT
UPDATE [ROWS]
SET DATACOLDATACOL=DATACOL+'--'
OUTPUT inserted.COL,
deleted.DATACOL
AS OLDDATA,
inserted.DATACOL
AS NEWDATA
WHERE COL<11
--RESULTS
COL OLDDATA NEWDATA
----------- -------------------- --------------------
7 Microsoft Microsoft--
8 Intel Intel--
9 alibaba alibaba--
10 siemens siemens--

(
4 row(s) affected)


--MERGE WITH OUTPUT
MERGE INTO dbo.Customer AS TGT
USING dbo.CustomerStage
AS SRC
ON TGT.CUSID=SRC.CUSID
WHEN MATCHED THEN
UPDATE
SET TGT.CustomeName=SRC.CustomeName,
TGT.companyname
=SRC.companyname
WHEN NOT MATCHED THEN
INSERT (cusid,CustomeName,companyname)
VALUES (SRC.cusid,SRC.CustomeName,SRC.companyname)
OUTPUT $ACTION,
INSERTED.CUSID,
DELETED.CustomeName
AS OLDCustomeName,
INSERTED.CustomeName
AS NEWCustomeName,
DELETED.companyname
AS OLDcompanyname,
INSERTED.companyname
AS companyname;

$ACTION CUSID OLDCustomeName NEWCustomeName OLDcompanyname companyname
---------- ----------- -------------------- -------------------- -------------------- --------------------
UPDATE 1 guo hu guo hu wicresoft Microsoft
UPDATE 3 jun wen li jun wen li HP alibaba
UPDATE 4 jin hao liu jin hao liu IBM siemens
INSERT 5 NULL cheng fan NULL Bank

(
4 row(s) affected)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值