日期:2011-01-25 23:11:00 来源:本站整理
采取手动增长型字段选取sql server主键[MSSQL防范]
本文“采取手动增长型字段选取sql server主键[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
sql server主键有多种选取的方法,下面为您详解采取手动增长型字段选取sql server主键的方法,供您参考,但愿对您有所启迪.
既然自动增长型字段会带来如此的麻烦,我们无妨考虑利用手动增长型的字段,也就是说sql server主键的值需求自己保护,普通情形下需求成立一张单独的表存储当前sql server主键键值.还用上面的例子来说,这次我们新建一张表叫IntKey,包含两个字段,KeyName以及KeyValue.就像一个HashTable,给一个 KeyName,便可以知道目前的KeyValue是什么,然后手工实现键值数据递增.在SQL Server中可以编写这样一个存储历程,让取键值的历程自动举行.代码以下:
- CREATE PROCEDURE [GetKey]@KeyName char(10),
- @KeyValue int OUTPUT
- AS
- UPDATE IntKey SET @KeyValueKeyValue = KeyValue =
- KeyValue + 1 WHERE KeyName = @KeyName
- GO
这样,通过调用存储历程,我们可以得到最新键值,确保不会呈现反复.若将OrderID字段设置为手动增长型字段,我们的程序可以由以下几步来实现:首先调用存储历程,得到一个OrderID,然后利用这个OrderID填充Order表与OrderDetail表,最后在事件保护下对两表举行更新.
利用手动增长型字段作为sql server主键在举行数据库间数据复制时,可以确保数据归并历程中不会呈现键值冲突,只要我们为差别的数据库分配差别的主键取值段就行了.但是,利用手动增长型字段会增添网络的RoundTrip,我们必须通过增添一次数据库拜候来获得当前主键键值,这会增添网络和数据库的负载,当处于一个低速或断开的网络环境中时,这种做法会有很大的弊端.同时,手工保护主键还要考虑并发冲突等各种因素,这更会增添系统的复杂程度.
以上是“采取手动增长型字段选取sql server主键[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论