Maison > base de données > tutoriel mysql > le corps du texte

SqlServer关闭与启用标识(自增长)列

WBOY
Libérer: 2016-06-07 15:34:33
original
1316 Les gens l'ont consulté

一般来说大概有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.显示值插入(

 

一般来说大概有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 的设置是在执行或运行时设置的

 

当然还有其他的方案,比如通过系统存储过程sp_configure 修改列的属性. 其中选择看场景吧

 

内容来源:http://www.5aspx.com/sql/2012/5252.html

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal