码迷,mamicode.com
首页 > 数据库 > 详细

SQL Server identity种子

时间:2014-10-04 02:58:35      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:blog   http   ar   数据   sp   2014   问题   c   on   

背景:

      用identity修饰列可以使它自动增长

例了:

      create table T(ID int not null identity(1,1),
      Data nvarchar(32));

      插入数据

     declare @i as int =1;
     while(@i<10)
     begin
           insert into T values(replicate(cast(@i as nchar(1)),10))
           set @i = @i +1;
    end

         bubuko.com,布布扣

        用dbcc checkident(‘Table_Name‘); 查看表的种子值。

        bubuko.com,布布扣

        删除数据:

                    delete from T
                    where ID >1;
                    go

                    dbcc checkident(‘Table_Name‘);--这时种子值还是9

       再次插入数据:

                        insert into T(Data) values(‘AAAA‘); 

       查看数据:

                  bubuko.com,布布扣

解决方法、

            重设种子值:

                          dbcc checkident(‘T‘,reseed,2);-- 到这一步问题就已经解决了

            插入数据:

                       insert into T(Data) values(‘BBB‘);

            输出:

                   select * fom T;

                   bubuko.com,布布扣

重点:

      这个种子值是  2  而表是有一个值是 10 如果一直长下去,会发生什么事呢?让我们多插入几条数据看一下

      插入数据:

                 declare @i as int =1;
                 while(@i<10)
                 begin
                         insert into T values(replicate(‘NNN‘,10))
                         set @i = @i +1;
                 end

      输出:

            bubuko.com,布布扣

重点2、

        如果ID是主键什么办。

       第一步:

                删除数据         

               delete from T
               where Data like ‘%N%‘
               go

      第二步:

               加主键

              alter table T
              add constraint PK_ID primary key(ID);
              go

 

 

 

    

SQL Server identity种子

标签:blog   http   ar   数据   sp   2014   问题   c   on   

原文地址:http://www.cnblogs.com/JiangLe/p/4005503.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!