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是主键什么办。

            会报错插入会失败。

            

        

  • 相关阅读:
    Notepad++ 6.2.3 发布,开源文本编辑器
    Scrum项目如何获得管理层的支持和合作
    Concurrency Kit 0.2.13 发布,并发工具包
    Orubase:为Windows Phone、Android和iOS平台开发混合本地手机应用程序
    CyaSSL 2.4.6 发布,SSL 加密库
    谷歌移动应用强调设计元素:向极简风格转型
    Bitcoin 0.7.2 发布, 匿名数字货币
    Netty 3.5.11 发布
    LDAP Account Manager 4.0 发布
    Apache Commons Math 3.1 发布
  • 原文地址:https://www.cnblogs.com/JiangLe/p/4005503.html
Copyright © 2011-2022 走看看