zoukankan      html  css  js  c++  java
  • SQL Server identity种子

    背景:

          用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

             

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

            

            删除数据:

                        delete from T
                        where ID >1;
                        go

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

           再次插入数据:

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

           查看数据:

                      

    解决方法、

                重设种子值:

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

                插入数据:

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

                输出:

                       select * fom T;

                       

    重点:

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

          插入数据:

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

          输出:

                

    重点2、

            如果ID是主键什么办。

            会报错插入会失败。

            

        

  • 相关阅读:
    Lucene
    SQL优化以及索引
    Mysql优化
    RocketMQ
    RocketMQ
    Session共享
    Linux安装Nginx
    初识nginx
    跨域,防止表单重复提交
    HttpClient案例
  • 原文地址:https://www.cnblogs.com/JiangLe/p/4005503.html
Copyright © 2011-2022 走看看