?? 5.1.1 set identity_insert 中的幾個問題.sql
字號:
--1. 會話中某個表已將此屬性設置為ON,當為另一個表發出了SET IDENTITY_INSERT ON 句時將出錯
--測試的表
CREATE TABLE ta(id int IDENTITY(1,1),col int)
CREATE TABLE tb(id int IDENTITY(1,1),col int)
GO
--設置 IDENTITY_INSERT 屬性
SET IDENTITY_INSERT ta ON
SET IDENTITY_INSERT tb ON
GO
/*======================================================*/
--2. 如果插入記錄的標識值大于表的當前標識值,則SQL Server自動將新插入值作為當前標識值使用
--測試的表
CREATE TABLE tb(id int IDENTITY(1,1),col int)
--強制在表中插入標識值
SET IDENTITY_INSERT tb ON
INSERT tb(id,col) VALUES(10,1)
SET IDENTITY_INSERT tb OFF
INSERT tb(col) VALUES(2)
SELECT * FROM tb
/*--結果
id col
----------------- -----------
10 1
11 2
--*/
GO
/*======================================================*/
--3. 如果插入記錄的標識值小于表的當前標識值,則表的當前標識值不受新插入值的影響
--測試的表
CREATE TABLE tb(id int IDENTITY(1,1),col int)
INSERT tb VALUES(1)
INSERT tb VALUES(2)
--強制在表中插入標識值
SET IDENTITY_INSERT tb ON
INSERT tb(id,col) VALUES(1,11)
SET IDENTITY_INSERT tb OFF
INSERT tb(col) VALUES(3)
SELECT * FROM tb
/*--結果
id col
----------------- -----------
1 1
2 2
1 11
3 3
--*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -