首頁 資料庫 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

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++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教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1319
25
PHP教程
1269
29
C# 教程
1248
24
Hibernate 框架中 HQL 和 SQL 的差異是什麼? Hibernate 框架中 HQL 和 SQL 的差異是什麼? Apr 17, 2024 pm 02:57 PM

HQL和SQL在Hibernate框架中進行比較:HQL(1.物件導向語法,2.資料庫無關的查詢,3.類型安全),而SQL直接操作資料庫(1.與資料庫無關的標準,2.可執行複雜查詢和資料操作)。

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語言中,使用關鍵字&quot;var&quot;來定義變數。變數定義的語法如下:v

比特幣是什麼?合法嗎?是不是騙局呀? 比特幣是什麼?合法嗎?是不是騙局呀? Mar 12, 2025 pm 07:21 PM

比特幣(Bitcoin),又稱比特金,是2008年由中本聰提出的虛擬加密數字貨幣,基於區塊鏈技術,採用去中心化分佈式賬本系統,確保交易安全和網絡穩定。其總量限制為2100萬枚,通過“挖礦”產生,具有全球交易、速度快、手續費低等特點,但其合法性因國家和地區而異。在中國,比特幣不具備貨幣地位,但作為虛擬財產受到一定程度的法律承認。 本文將深入探討比特幣的技術原理、發行機制、交易特點、合法性以及其是否為騙局等問題,幫助讀者全面了解比特幣。

See all articles