我使用SQL Server创建表并为其插入数据,但为什么open id不是1而是2?
create table test1
(
id int IDENTITY(1,1),
name varchar(255),
age int,
primary key (id),
constraint check_age check (age > 0 and age <= 150)
);
以下是显示结果。
select * from test1;
输出:
+----+--------------+-----+
| id | name | age |
+----+--------------+-----+
| 2 | shenmeshenqi | 20 |
| 3 | shenmeshenq | 21 |
+----+--------------+-----+
谁能帮帮我?谢谢
答案 0 :(得分:0)
以下命令将使下一个插入的标识值为1,之后为2,依此类推,因此2和3将重复。您现在可能只想截断表,因为它看起来像一个测试表。
dbcc checkident (test1, reseed, 0);
此外,您可以打开onidentity insert,然后插入值为1的数据作为id,然后再次关闭身份(如果需要)。
SET IDENTITY_INSERT dbo.Test1 ON
SET IDENTITY_INSERT dbo.Test1 OFF
希望它有所帮助。
答案 1 :(得分:0)
试试这个:
--store values from the table in temporary table
select * into #tempTable from test1
--remove all records from the table
delete test1
--reset identity to start from 1
dbcc checkident (test1, reseed, 0);
--insert data back to the table, now the records will be numbered starting with 1
insert into test1
select * from #tempTable