zoukankan      html  css  js  c++  java
  • SQL获取表中最新插入的记录

    /* 对于想要得到一个表中的最后一个插入操作所产生的ID的最好用IDENT_CURRENT('TBName')*/
    INSERT INTO table(field1,field2,VALUES("field1Value","field2Value",SELECT IDENT_CURRENT('recordID'as newIDValue

    /*对于马上使用的刚才插入的新记录ID用SCOPE_IDENTITY()是最合适的*/
    INSERT INTO table(field1,field2,VALUES("field1Value","field2Value",SELECT SCOPE_IDENTITY() as newIDValue


    /*对于想要得到一系列的操作中最后得到的那个自增的ID最好用@@IDENTITY*/
    INSERT INTO table(field1,field2,VALUES("field1Value","field2Value",SELECT @@IDENTITY as newIDValue

    相关文章,转自:http://www.cnblogs.com/deymmtd/archive/2009/02/25/1397653.html

    《SCOPE_IDENTITY和@@identity的区别》

    SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY 是相似的函数,因为它们都返回插入到标识列中的值。

    IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。调用它时必须提供表示表名的字符型参数,你可以得到你想要的任何表的最后一个IDENTITY值,即使你的代码里没有插入动作。例如:IDENT_CURRENT('T1');


    SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。

    例如,有两个表 T1 和 T2,并且在 T1 上定义了 INSERT 触发器。当将某行插入 T1 时,触发器被激发,并在 T2 中插入一行。 该方案演示了两个作用域:在 T1 上的插入,以及在 T2 通过触发器的插入。

    假设 T1 和 T2 都有标识列,@@IDENTITY 和 SCOPE_IDENTITY 将在 T1 上的 INSERT 语句的最后返回不同的值。@@IDENTITY 将返回在当前会话中的任何作用域内插入的最后一个标识列的值。这是在 T2 中插入的值。SCOPE_IDENTITY() 将返回在 T1 中插入的 IDENTITY 值。这是在同一个作用域内发生的最后的插入。如果在任何 INSERT 语句作用于作用域中的标识列之前调用 SCOPE_IDENTITY() 函数,则该函数将返回空值。


    scope_identy() 当前会话,当前作用域
    @@identity  当前会话,所有作用域

    ---------------程序如下-----------------------
    CREATE TABLE TZ (
    Z_id  int IDENTITY(1,1)PRIMARY KEY,
    Z_name varchar(20) NOT NULL)
    INSERT TZ
    VALUES ('Lisa')
    INSERT TZ
    VALUES ('Mike')
    INSERT TZ
    VALUES ('Carla')
    SELECT * FROM TZ

    go
    CREATE TABLE TY (
    Y_id  int IDENTITY(100,5)PRIMARY KEY,
    Y_name varchar(20) NULL)
    INSERT TY (Y_name)
    VALUES ('boathouse')
    INSERT TY (Y_name)
    VALUES ('rocks')
    INSERT TY (Y_name)
    VALUES ('elevator')
    SELECT * FROM TY

    go

    create TRIGGER Ztrig
    ON TZ
    after INSERT AS
    BEGIN
    INSERT TY VALUES ('')
    END

    go

    INSERT TZ VALUES ('Rosalie')
    SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY] 作用域:TZ表
    SELECT   @@IDENTITY AS [@@IDENTITY]  作用域:TY表

    ------------结果--------------
    4

    115

  • 相关阅读:
    手把手教你利用create-nuxt-app脚手架创建NuxtJS应用
    初识NuxtJS
    webpack打包Vue应用程序流程
    用选择器代替表格列的筛选功能
    Element-UI
    Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms[贪婪算法选特征]
    Sparse Principal Component Analysis via Rotation and Truncation
    Generalized Power Method for Sparse Principal Component Analysis
    Sparse Principal Component Analysis via Regularized Low Rank Matrix Approximation(Adjusted Variance)
    Truncated Power Method for Sparse Eigenvalue Problems
  • 原文地址:https://www.cnblogs.com/narkissos/p/1826764.html
Copyright © 2011-2022 走看看