首页 数据库 mysql教程 SQL自动增长列

SQL自动增长列

Jun 07, 2016 pm 03:12 PM
2 sql 变量 自动

在SQL SERVER2K有1个变量和2个函数可以得到: IDENT_CURRENT() 返回为任何会话和任何作用域中的特定表最后生成的标识值。 SELECT @@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。 SCOPE_IDENTITY() 返回为当前会话和当前作用域中的任何表

在SQL   SERVER2K有1个变量和2个函数可以得到:  
  IDENT_CURRENT()   返回为任何会话和任何作用域中的特定表最后生成的标识值。   
  SELECT   @@IDENTITY   返回为当前会话的所有作用域中的任何表最后生成的标识值。  
  SCOPE_IDENTITY()   返回为当前会话和当前作用域中的任何表最后生成的标识值。

 

========================================================================================

 

如何插入一条记录获取插入后的自动增长ID列的方法.

主要介绍了如何在设定了自动增长ID列后添加一条数据后获取添加的自动增长的ID值方法.

这篇文章我写了一个使用企业库3.0的方法来获取自动增长ID列的方法,代码如下:

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

using Microsoft.Practices.EnterpriseLibrary.Data;

using System.Data.Common;

 

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        Database db = DatabaseFactory.CreateDatabase("SQLConnectionString");

        string strSql = @"INSERT INTO [BSA].[dbo].[BSA_MissionLog]

           ([a]

           ,[b])

     VALUES

           ('1'

           ,'1'

           )

 

select id = scope_identity()";//这里是最重要的一段话.

        DbCommand dbcomm = db.GetSqlStringCommand(strSql);

        DataSet ds = db.ExecuteDataSet(dbcomm);

        for (int i = 0; i

        {

            for (int j = 0; j

{

                Response.Write("第"+i+"行"+j+"列:"+ds.Tables[0].Rows[i][j].ToString());

}

        }

    }

}

 

下面的代码是使用ado.net 2.0的代码:

SqlConnection con = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=table1;Persist Security Info=True;User ID=sa;Password=sa");

        try

        {

            string strSql = @"INSERT INTO Log

           ([a]

           ,[b])

     VALUES

           ('1'

           ,'1')

 

select id = scope_identity()";

            con.Open();

            SqlCommand com = new SqlCommand(strSql, con);

            DataSet ds = new DataSet();

 

            SqlDataAdapter da = new SqlDataAdapter(com);

            da.Fill(ds);

            con.Close();

            for (int i = 0; i

            {

                for (int j = 0; j

                {

                    Response.Write("第" + i + "行" + j + "列:" + ds.Tables[0].Rows[i][j].ToString());

                }

            }

        }

        finally

        {

            con.Close();

        }

 

微软对这样的方法解释是:

 

此代码告诉 SQL Server 不要返回查询的行计数,然后执行 INSERT 语句,并返回刚刚为这个新行创建的 IDENTITY 值。da.Fill(ds)语句返回的记录集有一行和一列,其中包含了这个新的 IDENTITY 值。如果没有此语句,则会首先返回一个空的记录集(因为 INSERT 语句不返回任何数据),然后会返回第二个记录集,第二个记录集中包含 IDENTITY 值。这可能有些令人困惑,尤其是因为您从来就没有希望过 INSERT 会返回记录集。之所以会发生此情况,是因为 SQL Server 看到了这个行计数(即一行受到影响)并将其解释为表示一个记录集。因此,真正的数据被推回到了第二个记录集。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1662
14
CakePHP 教程
1418
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24
Hibernate 框架中 HQL 和 SQL 的区别是什么? Hibernate 框架中 HQL 和 SQL 的区别是什么? Apr 17, 2024 pm 02:57 PM

HQL和SQL在Hibernate框架中进行比较:HQL(1.面向对象语法,2.数据库无关的查询,3.类型安全),而SQL直接操作数据库(1.与数据库无关的标准,2.可执行复杂查询和数据操作)。

在Linux上自动装载驱动器 在Linux上自动装载驱动器 Mar 20, 2024 am 11:30 AM

如果您使用Linux操作系统,并希望系统在启动时自动加载驱动器,可以通过将设备的唯一标识符(UID)和挂载点路径添加到fstab配置文件中来实现。fstab是一个位于/etc目录中的文件系统表文件,它包含了系统在启动时需要挂载的文件系统的信息。通过编辑fstab文件,您可以确保在每次系统启动时都能正确加载所需的驱动器,从而保证系统的稳定运行。自动安装驱动器可方便地应用于多种情境。比如,我计划将系统备份到外部存储设备。为了实现自动化,需确保设备与系统保持连接,甚至在启动时。同样,很多应用程序会直接

gateio交易所官方网站入口 芝麻开门gate官网入口 gateio交易所官方网站入口 芝麻开门gate官网入口 Feb 21, 2025 pm 02:48 PM

作为加密货币交易领军者,Gate.io 提供广泛的交易对、衍生品和金融服务。其中文版网站芝麻开门 Gate 方便中国用户使用,提供与 Gate.io 相同的功能,但更适合国人习惯。用户可通过指定网址访问 Gate.io 交易所或芝麻开门 Gate 官网,请务必谨慎保管账户信息,并仅访问官方网站以保障安全。

Go语言中SQL的基本概念及用法解析 Go语言中SQL的基本概念及用法解析 Mar 27, 2024 pm 05:30 PM

Go语言中SQL的基本概念及用法解析SQL(StructuredQueryLanguage)是一种专门用来管理和操作关系数据库的语言。在Go语言中,我们通常使用SQL来执行数据库操作,例如查询数据、插入数据、更新数据和删除数据等。本文将介绍Go语言中SQL的基本概念及用法,并附带具体的代码示例。1.连接数据库在Go语言中,我们可以使用第三方库来连接数据

gate官网登录入口网址 gate.io登录网页版 gate官网登录入口网址 gate.io登录网页版 Feb 18, 2025 pm 03:00 PM

Gate.io 作为一家数字资产交易所,为用户提供了便捷的登录流程。要登录 Gate.io,请访问其官方网站并点击右上角的“登录”按钮。随后输入您的电子邮件地址或手机号码和密码,并根据需要进行双因素认证(2FA)验证。成功登录后,您可通过 Gate.io 仪表板管理您的账户余额、订单和交易活动。为了保障账户安全,建议使用强密码并定期更改,同时启用 2FA 并注意防范网络钓鱼企图。

如何在 Golang 中使用 SQL 与 JSON 数据交互? 如何在 Golang 中使用 SQL 与 JSON 数据交互? Jun 03, 2024 am 11:47 AM

在Golang中通过SQL与JSON数据交互共有以下步骤:使用json.Unmarshal函数将JSON数据解析为Go结构体,实现JSON到结构体的转换。使用database/sql包访问和操作SQL数据库,执行诸如插入、查询等操作。结合上述步骤,可以在Go中构建基于SQL和JSON的应用,实现用户注册和登录等功能。

深入探讨Go语言中切片和变量的异同 深入探讨Go语言中切片和变量的异同 Apr 02, 2024 pm 06:33 PM

切片和变量在Go中都引用底层数组,共享内存。切片具有长度和可扩展容量,而变量具有固定长度。切片使用指针语义,变量使用值语义。通过根据需求选择切片或变量,可以编写更灵活高效的Go程序。

Go语言变量的定义和使用方法详解 Go语言变量的定义和使用方法详解 Mar 24, 2024 am 08:27 AM

Go语言变量的定义和使用方法详解Go语言是一种静态类型的系统编程语言,它支持面向对象、过程式和函数式编程风格。在Go语言中,变量是用来存储数据的最基本的单元,它们可以存储各种数据类型的值,如整数、浮点数、字符串等。本文将详细介绍Go语言中变量的定义和使用方法,并提供具体的代码示例。变量的定义在Go语言中,使用关键字"var"来定义变量。变量定义的语法如下:v

See all articles