一张A表包括id,name两个字段,id是自增长的,name是varchar的
内容如下:
---------------------
1 张三
2 李四
3 王五
---------------------
这三条数据,其中2这条数据不小心我删了,表中的内容变为
---------------------
1 张三
3 王五
---------------------
我现在想插入一条数据,而且编号也要是2的,数据跟原来的一样如下
---------------------
1 张三
2 李四
3 王五
---------------------
可以实现吗?
内容如下:
---------------------
1 张三
2 李四
3 王五
---------------------
这三条数据,其中2这条数据不小心我删了,表中的内容变为
---------------------
1 张三
3 王五
---------------------
我现在想插入一条数据,而且编号也要是2的,数据跟原来的一样如下
---------------------
1 张三
2 李四
3 王五
---------------------
可以实现吗?
GO
-- Create tool table.
CREATE TABLE dbo.Tool(
ID INT IDENTITY NOT NULL PRIMARY KEY,
Name VARCHAR(40) NOT NULL
)
GO
-- Inserting values into products table.
INSERT INTO dbo.Tool(Name) VALUES ('Screwdriver')
INSERT INTO dbo.Tool(Name) VALUES ('Hammer')
INSERT INTO dbo.Tool(Name) VALUES ('Saw')
INSERT INTO dbo.Tool(Name) VALUES ('Shovel')
GO-- Create a gap in the identity values.
DELETE dbo.Tool
WHERE Name = 'Saw'
GOSELECT *
FROM dbo.Tool
GO-- Try to insert an explicit ID value of 3;
-- should return a warning.
INSERT INTO dbo.Tool (ID, Name) VALUES (3, 'Garden shovel')
GO
-- SET IDENTITY_INSERT to ON.
SET IDENTITY_INSERT dbo.Tool ON
GO-- Try to insert an explicit ID value of 3.
INSERT INTO dbo.Tool (ID, Name) VALUES (3, 'Garden shovel')
GOSELECT *
FROM dbo.Tool
GO
-- Drop products table.
DROP TABLE dbo.Tool
GO
GO再插入数据
if object_id('tempdb.dbo.#tb') is not null drop table #tb
go
create table #tb (id int identity(1,1),name varchar(1))
insert into #tb
select 'a' union all
select 'b' union all
select 'c'select * from #tb
/*id name
----------- ----
1 a
2 b
3 c(3 row(s) affected)*/delete #tb where id=2 select * from #tb
/*
id name
----------- ----
1 a
3 c(2 row(s) affected)
*/set identity_insert #tb on insert #tb (id,name) select 2,'d'select * from #tb
/*
id name
----------- ----
1 a
2 d
3 c(3 row(s) affected)
*/