sql server 2005中,进行INSERT,UPDATE,DELETE等操作时,可以使用output子句,可以获得可喜的执行效率。
代码示例:
----output子句
if object_id('ta')is not null drop table ta go create table ta(ID int identity,[name] varchar(10)) insert ta([name]) select 'a' union all select 'b' union all select 'c' union all select 'd' union all select 'e' union all select 'f' union all select 'g' if object_id('tb')is not null drop table tb go create table tb(ID int identity,[name] varchar(10)) insert tb([name]) select 'a' union all select 'b' union all select 'c' --INSERT 陳述式來使用 OUTPUT INTO insert tb output inserted.id, inserted.[name] select [name] from ta where not exists(select 1 from tb where [name]=ta.[name]) /* id name ----------- ---------- 4 d 5 e 6 f 7 g */ --刪除剛才插入的紀錄 --by http://www.it.net.cn delete tb where [name]>'c' --储存此结果集保存到一个表值变量中 declare @t table(ID int,[name] varchar(10)) insert tb output inserted.id, inserted.[name]into @t select [name] from ta where not exists(select 1 from tb where [name]=ta.[name]) select * from @t /* ID name ----------- ---------- 8 d 9 e 10 f 11 g (4 個資料列受到影響) */ --DELETE 陳述式使用 OUTPUT delete tb output deleted.* where id=9 /* ID name ----------- ---------- 9 e (1 個資料列受到影響) */ -- UPDATE 陳述式使用 OUTPUT INTO update tb set [name]='test' output inserted.* where id=10 /* ID name ----------- ---------- 10 test (1 個資料列受到影響) */ /*
说明:
以下语句不支持 OUTPUT 子句: |