• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    sql语句返回主键SCOPE_IDENTITY()
    在sql语句后使用
    SCOPE_IDENTITY()

    当然您也可以使用 SELECT @@IDENTITY

    但是使用 SELECT @@IDENTITY是去全局最新. 有可能取得值不正确.

    示例:
    复制代码 代码如下:

    insert into dbo.SNS_BlogData(userName) values('jiangyun') ;
    SELECT SCOPE_IDENTITY()

    获取SQL-SERVER数据库insert into操作的主键返回值,SCOPE_IDENTITY

    插入一条记录后想要立刻获取其数据表中的主键返回值。这个主键是自动生成的,其实实现的方式有很多,比如再进行一次查询,获取出来。或者在插入数据之前取 出最大值,在最大值上面加一等等,方法很多,但是有些很不方便。
    个人感觉最快的方式就是,在插入数据后直接获取主键的值,然后返回过来。
    方法如下:
    sql语句如下:
    INSERT INTO tableName (fieldname ...) values (value ...) SELECT @@IDENTITY AS returnName;
    在sql语句中加入SELECT @@IDENTITY AS returnName;用来获取主键的值
    在程序中 获取返回值:
    复制代码 代码如下:

    public int sqlexecutereader(string sql)
    {
    DBopen();
    SqlCommand myComm = new SqlCommand(sql, Connection);
    int newID = Convert.ToInt32(myComm.ExecuteScalar());
    DBclose();
    return newID;
    }

    当然在此处主键是int类型的自动增加的。DBopen();DBclose();的操作在此就 不多说了。

    select SCOPE_IDENTITY()

    返回上面操作的数据表最后row的IDENTITY 列的值;

    返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。一个作用域就是一个模块——存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。

    SELECT @@IDENTITY

    返回上面操作最后一个数据表的最后row的IDENTITY 列的值;
    创建表:

    create table T_User(F_ID int identity(1,1) not null,F_Name varchar(20) not null)
    插入数据:

    insert into T_User(F_Name) values('我是谁') Select SCOPE_IDENTITY()
    存储过程:

    CREATE PROCEDURE [dbo].[sp_User](@F_Name int) AS
    begin tran Insertinto_T_User
    Insert into dbo.T_User(F_Name) values(@F_Name)
    Select SCOPE_IDENTITY()
    上一篇:sql 存储过程分页代码 支持亿万庞大数据量
    下一篇:MSSQL中递归SQL查询语句实例说明-
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    sql语句返回主键SCOPE_IDENTITY() sql,语句,返回,主键,SCOPE,