采用手动增长型字段选取sql server主键

数据库 SQL Server
手动增长型字段选取sql server主键会比自动增长型字段选取sql server主键更方便一些,下面就将对手动增长型字段选取sql server主键进行详细说明,供您参考。

sql server主键有多种选取的方式,下面为您详解采用手动增长型字段选取sql server主键的方式,供您参考,希望对您有所启迪。

既然自动增长型字段会带来如此的麻烦,我们不妨考虑使用手动增长型的字段,也就是说sql server主键的值需要自己维护,通常情况下需要建立一张单独的表存储当前sql server主键键值。还用上面的例子来说,这次我们新建一张表叫IntKey,包含两个字段,KeyName以及KeyValue。就像一个HashTable,给一个 KeyName,就可以知道目前的KeyValue是什么,然后手工实现键值数据递增。在SQL Server中可以编写这样一个存储过程,让取键值的过程自动进行。代码如下:

  1. CREATE PROCEDURE [GetKey]@KeyName char(10),   
  2. @KeyValue int OUTPUT  
  3. AS   
  4. UPDATE IntKey SET @KeyValueKeyValue = KeyValue =  
  5. KeyValue + 1 WHERE KeyName = @KeyName   
  6. GO  

这样,通过调用存储过程,我们可以获得最新键值,确保不会出现重复。若将OrderID字段设置为手动增长型字段,我们的程序可以由以下几步来实现:首先调用存储过程,获得一个OrderID,然后使用这个OrderID填充Order表与OrderDetail表,最后在事务保护下对两表进行更新。

使用手动增长型字段作为sql server主键在进行数据库间数据复制时,可以确保数据合并过程中不会出现键值冲突,只要我们为不同的数据库分配不同的主键取值段就行了。但是,使用手动增长型字段会增加网络的RoundTrip,我们必须通过增加一次数据库访问来获取当前主键键值,这会增加网络和数据库的负载,当处于一个低速或断开的网络环境中时,这种做法会有很大的弊端。同时,手工维护主键还要考虑并发冲突等种种因素,这更会增加系统的复杂程度。
 

 

 

【编辑推荐】

SQL CHARINDEX函数的使用

SQL查询时间段的语句写法

三种SQL索引

SQL隐性事务实例

SQL事务的操作语法

责任编辑:段燃 来源: 互联网
相关推荐

2010-09-25 09:45:46

sql server主

2010-09-25 09:34:05

sql server主

2010-07-09 14:16:10

SQL Server

2010-10-19 17:21:35

SQL SERVER主

2010-09-25 10:05:25

sql server主

2010-04-13 15:23:03

Oracle 9i s

2010-10-20 10:19:33

sql server删

2010-10-20 10:31:57

sql server联

2010-10-21 14:54:32

查询SQL Serve

2011-07-25 18:11:47

SQL Server数复合主键

2010-10-21 11:24:02

SQL Server查

2009-05-15 10:14:31

SQL Server主键自动编号

2011-04-13 14:20:52

SQL Server主键

2010-10-19 17:34:10

sql server主

2010-07-05 15:12:30

SQL Server主

2010-09-14 15:25:58

SQL SERVER字

2011-07-01 10:18:58

SQL ServerSelect

2010-09-25 10:41:34

SQL SERVER主

2010-10-11 11:46:20

MySQL主键

2010-09-01 16:44:26

SQL删除主键
点赞
收藏

51CTO技术栈公众号