在MS SQL Server中创建数据库表时,可以指定主键字段为自增长(int IDENTITY(1,1) )。在插入记录时,数据库自动生成主键值(获取此主键值可以使用 SELECT SCOPE_IDENTITY() AS ID;)。这样做的优点是无需管理此字段,DBMS会自动维护它。缺点是在数据库记录导入导出时主键值无法顺利操作。
一个解法办法是去掉主键字段的自增长,而通过程序来维护增长。
在插入记录时的SQL语句可以类似这样:DECLARE @id int; SELECT @id=ISNULL(MAX([ID]),0) FROM <table_name>; INSERT INTO <table_name> (ID,...) VALUES(@id+1,...);
说明:首先定义一个变量,通过查询表的主键字段最大值赋值,加1之后作为新行的主键值。因为初始时主键字段无值,MAX([ID])得到的是NULL,所以要替换成0。
本文介绍在MSSQLServer中,不使用自增长特性,而通过程序控制主键字段ID递增的方法。首先查询表中ID的最大值,若无记录则默认为0,然后在此基础上加1作为新插入记录的ID值。
4184

被折叠的 条评论
为什么被折叠?



