1. 程式人生 > >[sql server][基礎] insert時如何給自增列賦值

[sql server][基礎] insert時如何給自增列賦值

--建立測試環境
IF OBJECT_ID('tb') IS NOT NULL  DROP TABLE tb
GO
CREATE TABLE tb
(
 id int identity,
 code varchar(10),
 name varchar(20),  
    CONSTRAINT PK_TB PRIMARY KEY (id)
)
GO
--查詢
INSERT TB SELECT 'AA','AA'
insert tb values('bb','bb')
select * from tb
go
--結果
/*
id          code       name
----------- ---------- --------------------
1           AA         AA
2           bb         bb

(2 行受影響)
*/
set IDENTITY_INSERT tb on
INSERT TB SELECT 3, 'AA','AA'
insert tb values(3,'bb','bb')
go
--結果
/*
訊息 8101,級別 16,狀態 1,第 6 行
僅當使用了列列表並且 IDENTITY_INSERT 為 ON 時,才能為表'TB'中的標識列指定顯式值。
訊息 8101,級別 16,狀態 1,第 7 行
僅當使用了列列表並且 IDENTITY_INSERT 為 ON 時,才能為表'tb'中的標識列指定顯式值。
*/
set IDENTITY_INSERT tb on
INSERT TB (id,code,name) SELECT 3, 'AA','AA'
insert tb (id,code,name) values(4,'bb','bb')
select * from tb
--結果
/*
id          code       name
----------- ---------- --------------------
1           AA         AA
2           bb         bb
3           AA         AA
4           bb         bb

(4 行受影響)
*/