SQL server-自增主鍵


1.CREATE   TABLE   表名(   
  字段名   [int]   IDENTITY   (1,   1)   NOT   NULL   ,    //--(seed = 1,increment = 1) 從1開始,每次遞增1 
  ...   
  )   

2.在SQL   SERVER中,所有整數類型的列都可以定義成自增長列,叫作“標識”,   
  它通過設定“標識種子”和“標識遞增量”來實現功能。   
  列如:   
    
          列         類型               標識       標識種子       標識遞增量   
        ----       -------       ----       -------       ----------   
        test         tinyint         √               1                     1   
    
      當你插入一行后,會從1開始自動的賦值。(1、2、3、4……255)   
      
  方法為:   
      1、選中表;   
      2、右擊鼠標,設計;   
      3、選中列(整數類型)   
      4、設定標識為“是“(默認為“否”)、標識種子和標識遞增量(一般為1)。 

 

3.給定指定值自增

  1).當數據庫表字段的列設置為自增列后,不能人為改變自增列的值

  2).但有時候在導數據或公用配置過程中,有些基礎設置的值是不變的或者是固定,這樣在新起項目或導數據時會出現問題。

  怎么才能修改自增列的值,讓導入的數據按我們指定的值存放呢,  

  3).下面介紹一種簡單的數據設置方法:

  IDENTITY_INSERT

  參數:ON(開始) OFF(結束)

  注:此方法只可插入新值,仍然不能修改原有Identity列的值

  示例:

SET IDENTITY_Insert TestTABLE ON     
insert TestTABLE(IDENTITYID,Code,XX,XX)  
VALUES(43,'','xx','xx');      
SET IDENTITY_INSERT TestTABLE OFF 

說明: 

TestTable:數據庫表名

IDENTITYID:自增列字段

這樣我們就可以輕松進行數據導入,或寫入指定值的數據了

 

4、取自增最新值

SELECT IDENT_CURRENT('tablename') + IDENT_INCR('tablename') as newid

IDENT_CURRENT( 'table_name' ) 返回為指定的表或視圖生成的最后一個標識值。所生成的最后一個標識值可以針對任何會話和任何作用域。


SCOPE_IDENTITY 返回插入到同一作用域中的標識列內的最后一個標識值。一個范圍是一個模塊:存儲過程、觸發器、函數或批處理。因此,如果兩個語句處於同一個存儲過程、函數或批處理中,則它們位於相同的作用域中。


IDENT_INCR ( 'table_or_view' ) 返回增量值(返回形式為 numeric (@@MAXPRECISION,0)),該值是在帶有標識列的表或視圖中創建標識列時指定的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM