广

MSSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    MSSQL2005 INSERT,UPDATE,DELETE 之OUTPUT子句使用实例

    2018-04-16 10:57:46 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布
    代码如下:

    -->Title:Generating test data
    -->Author:wufeng4552
    -->Date :2009-10-07 15:16:26
    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
    */
    --除才插入的
    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 子句对于在 INSERT操作之后检索标识列或计算列的值可能非常有用。
    另外OUTPUT子句也可以在UPDATE和DELETE语句中使用,从插入表或删除表中得到数值,并返回这些数值。
    以下语句中不支持 OUTPUT 子句:
    l 引用本地分区视图、分布式分区视图或远程表的 DML 语句。
    l 包含 EXECUTE 语句的 INSERT 语句。
    l 不能将 OUTPUT INTO 子句插入视图或行集函数。
    简洁的OUTPUT子句,使得向SQL Server导入数据的操作得到了极大的简化。

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告