采用手动增长型字段选取sql server主键 |
本文标签:sql server主键 sql server主键有多种选取的方式,下面为您详解采用手动增长型字段选取sql server主键的方式,供您参考,希望对您有所启迪 。 既然自动增长型字段会带来如此的麻烦,我们不妨考虑使用手动增长型的字段,也就是说sql server主键的值需要自己维护,通常情况下需要建立一张单独的表存储当前sql server主键键值 。还用上面的例子来说,这次我们新建一张表叫IntKey,包含两个字段,KeyName以及KeyValue 。就像一个HashTable,给一个 KeyName,就可以知道目前的KeyValue是什么,然后手工实现键值数据递增 。在SQL Server中可以编写这样一个存储过程,让取键值的过程自动进行 。代码如下:
这样,通过调用存储过程,我们可以获得最新键值,确保不会出现重复 。若将OrderID字段设置为手动增长型字段,我们的程序可以由以下几步来实现:首先调用存储过程,获得一个OrderID,然后使用这个OrderID填充Order表与OrderDetail表,最后在事务保护下对两表进行更新 。 使用手动增长型字段作为sql server主键在进行数据库间数据复制时,可以确保数据合并过程中不会出现键值冲突,只要我们为不同的数据库分配不同的主键取值段就行了 。但是,使用手动增长型字段会增加网络的RoundTrip,我们必须通过增加一次数据库访问来获取当前主键键值,这会增加网络和数据库的负载,当处于一个低速或断开的网络环境中时,这种做法会有很大的弊端 。同时,手工维护主键还要考虑并发冲突等种种因素,这更会增加系统的复杂程度 。
|