日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
采用手動增長型字段選取sql server主鍵

sql server主鍵有多種選取的方式,下面為您詳解采用手動增長型字段選取sql server主鍵的方式,供您參考,希望對您有所啟迪。

創(chuàng)新互聯(lián)建站專業(yè)提供成都主機托管四川主機托管成都服務器托管四川服務器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價格,機房位于中國電信/網(wǎng)通/移動機房,綿陽電信機房機柜租用服務有保障!

既然自動增長型字段會帶來如此的麻煩,我們不妨考慮使用手動增長型的字段,也就是說sql server主鍵的值需要自己維護,通常情況下需要建立一張單獨的表存儲當前sql server主鍵鍵值。還用上面的例子來說,這次我們新建一張表叫IntKey,包含兩個字段,KeyName以及KeyValue。就像一個HashTable,給一個 KeyName,就可以知道目前的KeyValue是什么,然后手工實現(xiàn)鍵值數(shù)據(jù)遞增。在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  

這樣,通過調(diào)用存儲過程,我們可以獲得最新鍵值,確保不會出現(xiàn)重復。若將OrderID字段設置為手動增長型字段,我們的程序可以由以下幾步來實現(xiàn):首先調(diào)用存儲過程,獲得一個OrderID,然后使用這個OrderID填充Order表與OrderDetail表,最后在事務保護下對兩表進行更新。

使用手動增長型字段作為sql server主鍵在進行數(shù)據(jù)庫間數(shù)據(jù)復制時,可以確保數(shù)據(jù)合并過程中不會出現(xiàn)鍵值沖突,只要我們?yōu)椴煌臄?shù)據(jù)庫分配不同的主鍵取值段就行了。但是,使用手動增長型字段會增加網(wǎng)絡的RoundTrip,我們必須通過增加一次數(shù)據(jù)庫訪問來獲取當前主鍵鍵值,這會增加網(wǎng)絡和數(shù)據(jù)庫的負載,當處于一個低速或斷開的網(wǎng)絡環(huán)境中時,這種做法會有很大的弊端。同時,手工維護主鍵還要考慮并發(fā)沖突等種種因素,這更會增加系統(tǒng)的復雜程度。

【編輯推薦】

SQL CHARINDEX函數(shù)的使用

SQL查詢時間段的語句寫法

三種SQL索引

SQL隱性事務實例

SQL事務的操作語法


網(wǎng)站名稱:采用手動增長型字段選取sql server主鍵
分享鏈接:http://m.5511xx.com/article/dpgihhi.html