您的位置:首页 > 数据库 > SQL

Sql Server OUTPUT新用法

2011-12-22 08:43 232 查看
以前只用过在存储过程中,



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 0
2 b 0
3 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.Deleteflag
Into @A
VALUES('d',0)
SELECT * FROM @A

我在思考,Update也应该对应有个修改的关键字,应该可以返回修改之前的数据,但是没有发现,如果哪位兄弟发现的记得告诉我啊
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: