Output into是一种语法
Output into是一种语法,其语法格式为OUTPUT INTO @table_variable(临时表)
作用:可以使你从修改语句中(insert,update,delete)将数据返回到表变量中。
详细描述:可以通过引用插入的表和删除的表来访问被修改的行的旧/新映像,其方式与访问触发器类似。在 INSERT 语句中,只能访问插入的表。在 DELETE 语句中,只能访问删除的表。在 UPDATE 语句中,可以访问插入的表和删除的表
拿李宁的语句为例:
UPDATE acc
SET acc.ExpressCompanyID = olog.ExpressCompanyID ,
acc.IsChanged = 1 ,
acc.Status = ( CASE WHEN olog.Status = '3'
AND olog.ReplaceType = 1
THEN '60'
WHEN olog.Status = '5'
AND olog.ReplaceType = 1
AND acc.Status IN (
10, 50, 60, 80 )
THEN '80'
ELSE acc.Status
END )
OUTPUT inserted.AcceptCode , --旧的映像(也就是update之前的值)
deleted.Status , ---新的映像(update之后的值)
olog.OplogID
INTO #acceptLog ( AcceptCode, Status, OplogID )
作用:可以使你从修改语句中(insert,update,delete)将数据返回到表变量中。
详细描述:可以通过引用插入的表和删除的表来访问被修改的行的旧/新映像,其方式与访问触发器类似。在 INSERT 语句中,只能访问插入的表。在 DELETE 语句中,只能访问删除的表。在 UPDATE 语句中,可以访问插入的表和删除的表
拿李宁的语句为例:
UPDATE acc
SET acc.ExpressCompanyID = olog.ExpressCompanyID ,
acc.IsChanged = 1 ,
acc.Status = ( CASE WHEN olog.Status = '3'
AND olog.ReplaceType = 1
THEN '60'
WHEN olog.Status = '5'
AND olog.ReplaceType = 1
AND acc.Status IN (
10, 50, 60, 80 )
THEN '80'
ELSE acc.Status
END )
OUTPUT inserted.AcceptCode , --旧的映像(也就是update之前的值)
deleted.Status , ---新的映像(update之后的值)
olog.OplogID
INTO #acceptLog ( AcceptCode, Status, OplogID )
浙公网安备 33010602011771号