在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。