zoukankan      html  css  js  c++  java
  • SqlServer关闭与启用标识(自增长)列

    1 --添加新列 2 ALTER TABLE TABLENAME ADD ID int 3 --赋值 4 UPDATE TABLENAME SET ID = IDENTITY_ID 5 --删除标识列 6 ALTER TABLE TABLENAME DROP COLUMN IDENTITY_ID

     

    一般来说大概有2种较好的方案.

    1.通过添加列来替换标识列

    替换法 
    1 --添加新列
    2 ALTER TABLE TABLENAME ADD ID int
    3 --赋值
    4 UPDATE TABLENAME SET ID = IDENTITY_ID
    5 --删除标识列
    6 ALTER TABLE TABLENAME DROP COLUMN IDENTITY_ID
     

    2.显示值插入(修改会话中的IDENTITY_INSERT ),临时性 ,不彻底该表列性质

    SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table { ON | OFF }

    显式值插入
      

    1 --一般是组合使用,已确保会话中IDENTITY_INSERT的完整状态
    2 SET IDENTITY_INSERT TABLENAME ON  --关闭
    3 INSERT INTO TABLENAME(IDENTYTY_ID,...) VALUES(...)
    4 INSERT INTO TABLENAME(IDENTYTY_ID,...) VALUES(...)
    5 INSERT INTO TABLENAME(IDENTYTY_ID,...) VALUES(...)
    6 SET IDENTITY_INSERT test OFF      --开启
     

    关于这种方式,需要注意如下:

    A.任何时候,一个会话中只有一个表的 IDENTITY_INSERT 属性可以设置为 ON ,想修改其他表,必须将前一个ON状态改回OFF

    B.如果插入值大于表的当前标识值,则 SQL Server 自动将新插入值作为当前标识值使用

    C.SET IDENTITY_INSERT 的设置是在执行或运行时设置的

  • 相关阅读:
    iOS drewRect方法
    iOS中的单例
    iOS中类别的使用
    iOS存储的三种方式
    安卓上微信闪退的一种解决方法
    [Z] 通天塔导游:各种编程语言的优缺点
    怎样面对痛苦?
    [Z] 10 种必知必会的软件开发工具
    [Z] Linux 内核同步机制
    [Z] 囚禁你的精灵(daemon)进程
  • 原文地址:https://www.cnblogs.com/johnblogs/p/10303675.html
Copyright © 2011-2022 走看看