sql自增id
❶ id自增 sql語句怎麼寫
mysql的
create table t_user(
id int primary key auto_increment
)
oracle的
CREATE SEQUENCE user_sequence
INCREMENT BY 1 -- 每次加幾個
START WITH 1 -- 從1開始計數
NOMAXVALUE -- 不設置最大值
NOCYCLE -- 一直累加,不循環
CACHE 10;
一旦定義了user_sequence,你就可以用CURRVAL,NEXTVAL
CURRVAL=返回 sequence的當前值
NEXTVAL=增加sequence的值,然後返回 sequence 值
INSERT INTO t_user VALUES
(user_sequence.nextval);
❷ sql 設置主鍵 自動增長
Alter table tabname add primary key(col) 設置主鍵
SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('表名') AND is_identity=1自增列應該是這樣
❸ 如何得到SqlServer的自增ID
SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY
IDENT_CURRENT 不受作用域和會話的限制,而受限於指定的表。
IDENT_CURRENT 返回為任何會話和作用域中的特定表所生成的值。
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()
函數,則該函數將返回 Null。
如果語句和事務失敗,它們會更改表的當前標識,從而使標識列中的值出現不連貫現象。
即使未提交試圖向表中插入值的事務,也永遠無法回滾標識值。
例如,如果因 IGNORE_DUP_KEY 沖突而導致 INSERT
語句失敗,表的當前標識值仍然會增加。
❹ sql server建表時怎麼設置ID欄位自增
sql server建表時設置ID欄位自增的方法有兩種:
1 、在SQL Server Management Studio中實現SQL Server自增欄位
打開SQL Server Management Studio,打開資料庫之後,在選中的表上點「修改」,在選中需要設置為自增的欄位,在右下方的表設計器里選擇「標識規范」,選「是」,就設定即可。
2、使用SQL語句在程序或者查詢分析器裡面實現SQL Server自增欄位
sql server 設置自增欄位identity屬性 (以新建數據表tablename中的id欄位為例)
createtabletablename
(
idintidentity(1,1) //identity表示自增列的意思,而int identity(1,1)表示從1開始遞增,每次自增1。
)
這樣設置之後,tablename數據表中的id欄位就是自增列。
如果想實現帶前綴或者後綴的自動增加欄位,不能用varchar,還是使用上面的方法創建欄位,但是在讀取的時候用增加前後綴的形式來顯示想要的效果,例如如果希望得出結果是a001可以這么做select 'a'+convert(varchar(20),id) from tablename,這里的tablename是剛才建立的具體的表明。
❺ sql server中如何實現自增欄位
1、主鍵自增,以及建表的語句如下:
CREATE TABLEIF NOT EXISTS `t_email_notice` (
`id` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,`send_time` INT (16) NOT NULL DEFAULT '0',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中 `id` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,這句話表示設置id欄位字增,類型為int
2、varchar類型的主鍵,不會自增。但是你可以通過創建觸發器的形式,來實現自增。代碼如下:
CREATE TRIGGER `T` BEFORE INSERT ON `user`FOR EACH ROW begin
set new.id=concat('SH',lpad(((SELECT substring(id,3,4) from user where id=(select id from user order by id desc limit 1))+1),4,0));
end;
這段語句的意思是,當user表中新插入一條一條語句,會觸發『觸發器T』將以』SH『開頭的id欄位自增+1。
(5)sql自增id擴展閱讀
sql語句建表規則如下:
create table 『表名』 (『欄位1』 type1 [not null] [primary key] identity(起始值,遞增量),『欄位2』type2 [not null], ...)--primary key為主鍵 identity表示遞增數量。
❻ sql server怎麼獲取自增的id值
SELECT SCOPE_IDENTITY() --返回插入到同一作用域中的 IDENTITY 列內的最後一個 IDENTITY 值。
SELECT @@IDENTITY --返回插入到當前會話中任何作用域內的最後一個 IDENTITY 列值
SELECT IDENT_CURRENT('TbName')--不受作用域和會話的限制,而受限於指定的表。
❼ sql語句 如何添加自增長主鍵
create table 表名(欄位名 int not null primary key identity(1,1))
❽ sql自增id怎麼寫 並且設置成為主鍵
主鍵欄位 int identity(11,1) primary key
這樣就可以了。
主鍵只能有1個,可以是一個欄位,也可以是多個欄位組合的。
❾ 資料庫如何設置主鍵(ID)自動增長啊(SQL語句)
在創建表的時候可以設置,方法如下,用一下sql語句。
createtabletableName(
idintidentity(1,1)primarykey,
datavarchar(50))
解釋:其中identity(1,1)代表自增,第一個1代表從1開始計數,第二個1代表每次增長1。
(9)sql自增id擴展閱讀:
SQL全名是結構化查詢語言[1](Structured Query Language),是用於資料庫中的標准數據查詢語言,IBM公司最早使用在其開發的資料庫系統中。1986年10月,美國國家標准學會(ANSI) 對 SQL 進行規范後,以此作為關系式資料庫管理系統的標准語言 (ANSI X3. 135-1986),1987年得到國際標准組織的支持下成為國際標准。不過各種通行的資料庫系統在其實踐過程中都對 SQL 規范作了某些編改和擴充。所以,實際上不同資料庫系統之間的SQL不能完全相互通用。
參考資料:
網路-SQL語言
❿ SQL Server中怎樣設置id號自動增長
createtable表名--第一種用sql建表identity(1,1)為每次遞增1位primarykey為主鍵
(
idintidentity(1,1)primarykey
)
--第二種用設計器來操作
--滑鼠對准你需要操作的表名右擊=>設計=>
選中你需要操作的列名然後在下方有一個列屬性=>選擇標識規范=>
將標識增量此選項選為(是)下面有一個標識種子默認為1(每次遞增1,可修改)