当前位置:七道奇文章资讯数据防范MSSQL防范
日期: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中可以编写这样一个存储历程,让取键值的历程自动举行.代码以下:

  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 server主键[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 采取手动增长型字段选取sql server主键
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .