以前只用过在存储过程中,
如
Create PROCEDURE [dbo].[GetMemoIDForSP]
(@SCString NVARCHAR(255), @ReturnMemoid varchar(20) Output )AS
最近突然发现一个新的用法,和大家一起分享:
数据库Test 表A(SN INT,Title Varchar(50),DeleteFlag INT )
SELECT * FROM DBO.A
SN Title Deleteflag
1 a 02 b 03 c 0
1.当插入新的记录时:
Insert INTO A (Title,Deleteflag)
OUTPUT inserted.* VALUES('d',0)他会返回插入的记录
SN Title Deleteflag
4 d 0这样在返回数据的时候就不用在写一个Select
2.同理,在修改的时候
Update A SET Title='dd'
OUTPUT inserted.* WHERE SN=4这样会返回最新的(修改后)记录
3.删除
DELETE A
OUTPUT deleted.*WHERE SN=4这样会返回删除钱的数据 用途,应该是可以在处理删除时记录是谁删除的,
4.返回的数据保存到临时表里
declare @A Table(SN int ,Title Varchar(50),DeleteFlag int )
Insert INTO A (Title,Deleteflag)
OUTPUT inserted.SN,inserted.Title,inserted.DeleteflagInto @AVALUES('d',0)SELECT * FROM @A
我在思考,Update也应该对应有个修改的关键字,应该可以返回修改之前的数据,但是没有发现,如果哪位兄弟发现的记得告诉我啊