SqlServer中的自增的ID的最后的值:

創(chuàng)新互聯(lián)成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元岳塘做網(wǎng)站,已為上家服務(wù),為岳塘各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
SELECT SCOPE_IDENTITY() --返回插入到同一作用域中的 IDENTITY 列內(nèi)的最后一個(gè) IDENTITY 值。
SELECT @@IDENTITY --返回插入到當(dāng)前會(huì)話中任何作用域內(nèi)的最后一個(gè) IDENTITY 列值
SELECT IDENT_CURRENT('TbName')--不受作用域和會(huì)話的限制,而受限于指定的表。
IDENT_CURRENT 返回為任何會(huì)話和作用域中的特定表所生成的值。
一個(gè)作用域就是一個(gè)模塊——存儲(chǔ)過程、觸發(fā)器、函數(shù)或批處理。因此,如果兩個(gè)語句處于同一個(gè)存儲(chǔ)過程、函數(shù)或批處理中,則它們位于相同的作用域中。
SQL可以多個(gè)語句一起執(zhí)行:
insert into ... ; SELECT SCOPE_IDENTITY() ;
二條一起執(zhí)行,到時(shí)可獲取第二個(gè)SQL的值
先說一下 SQL Server
通過 IDENTITY 來設(shè)置
參數(shù)有2個(gè),一個(gè)是“初始值” 一個(gè)是“增量”。
默認(rèn)情況下 INSERT 語句中,不能對(duì) IDENTITY 的字段進(jìn)行賦值。
對(duì)于 IDENTITY 的列 SQL Server 在 INSERT 的時(shí)候,會(huì)自動(dòng)忽略掉。
1 CREATE TABLE test_create_tab2 (
2 id INT IDENTITY(1, 1) PRIMARY KEY,
3 val VARCHAR(10)
4 );
5 go
1 INSERT INTO test_create_tab2(val) VALUES ('NO id');
2 go
(1 行受影響)
1 INSERT INTO test_create_tab2(id, val) VALUES (6, 'id no use');
2 go
消息 544,級(jí)別 16,狀態(tài) 1,服務(wù)器 HOME-BED592453C\SQLEXPRESS,第 1 行
當(dāng) IDENTITY_INSERT 設(shè)置為 OFF 時(shí),不能為表 'test_create_tab2' 中的標(biāo)識(shí)列插入顯式值。
1 INSERT INTO test_create_tab2(val) VALUES ('A');
2 INSERT INTO test_create_tab2(val) VALUES ('B');
3 INSERT INTO test_create_tab2 VALUES ('C');
4 INSERT INTO test_create_tab2 VALUES ('D');
5 go
1 SELECT * FROM test_create_tab2;
2 go
id val
----------- ----------
1 NO id
2 A
3 B
4 C
5 D
(5 行受影響)
再說一下 mysql
通過
AUTO_INCREMENT設(shè)置
SQL INSERT語句的時(shí)候,要避免 指定那個(gè)自增的字段
mysql CREATE TABLE test_create_tab2 (
- id INT AUTO_INCREMENT,
- val VARCHAR(10),
- PRIMARY KEY (id)
- );
Query OK, 0 rows affected (0.09 sec)
mysql INSERT INTO test_create_tab2(val) VALUES ('NO id');
Query OK, 1 row affected (0.03 sec)
mysql select last_insert_id() as id;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
mysql INSERT INTO test_create_tab2(val) VALUES ('NO id 2');
Query OK, 1 row affected (0.03 sec)
mysql select last_insert_id() as id;
+----+
| id |
+----+
| 2 |
+----+
1 row in set (0.00 sec)
mysql select * from test_create_tab2;
+----+---------+
| id | val |
+----+---------+
| 1 | NO id |
| 2 | NO id 2 |
+----+---------+
2 rows in set (0.00 sec)
sql server建表時(shí)設(shè)置ID字段自增的方法有兩種:
1 、在SQL Server Management Studio中實(shí)現(xiàn)SQL Server自增字段
打開SQL Server Management Studio,打開數(shù)據(jù)庫之后,在選中的表上點(diǎn)“修改”,在選中需要設(shè)置為自增的字段,在右下方的表設(shè)計(jì)器里選擇“標(biāo)識(shí)規(guī)范”,選“是”,就設(shè)定即可。
也可以在表的屬性窗口中設(shè)置設(shè)置標(biāo)識(shí)列:
2、使用SQL語句在程序或者查詢分析器里面實(shí)現(xiàn)SQL Server自增字段
sql server 設(shè)置自增字段identity屬性 (以新建數(shù)據(jù)表tablename中的id字段為例)
create?table?tablename
(
id?int?identity(1,1) //identity表示自增列的意思,而int identity(1,1)表示從1開始遞增,每次自增1。
)
這樣設(shè)置之后,tablename數(shù)據(jù)表中的id字段就是自增列。
如果想實(shí)現(xiàn)帶前綴或者后綴的自動(dòng)增加字段,不能用varchar,還是使用上面的方法創(chuàng)建字段,但是在讀取的時(shí)候用增加前后綴的形式來顯示想要的效果,例如如果希望得出結(jié)果是a001可以這么做select 'a'+convert(varchar(20),id) from tablename,這里的tablename是剛才建立的具體的表明。
SQL
Server
自增主鍵創(chuàng)建語法:
identity(seed,
increment),其中為seed
起始值,increment
為增量。示例如下:
create
table
student
//創(chuàng)建學(xué)生表
(id
int
identity(1,1),
name
varchar(100)
)
//
id字段為自增
自增字段的類型必須為不帶小數(shù)的數(shù)值類型。
擴(kuò)展資料:
實(shí)現(xiàn)自增字段的其他方法:
下列
SQL
語句把
"Persons"
表中的
"P_Id"
列定義為
auto-increment
主鍵:
CREATE
TABLE
Persons
(
P_Id
int
NOT
NULL
AUTO_INCREMENT,LastName
varchar(255)
NOT
NULL,
FirstName
varchar(255),
Address
varchar(255),
City
varchar(255),PRIMARY
KEY
(P_Id)
)
參考資料:搜狗百科-標(biāo)識(shí)列
當(dāng)前標(biāo)題:nosql自增字段的簡(jiǎn)單介紹
文章出自:http://chinadenli.net/article12/dsgcgdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、小程序開發(fā)、服務(wù)器托管、微信小程序、虛擬主機(jī)、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)