乙個ID引起的血案

2022-09-19 00:24:13 字數 710 閱讀 7632

最近用asp寫程式時,剛開始支援的資料庫是access,程式裡有一段**是往資料庫裡新添一條記錄,方法為先建立乙個recordset,然後用addnew和update方法來實現資料新增。addnew之後便能取得新增記錄的id號。

後來程式移植到伺服器上時,由於伺服器安裝的是sql server 2000,未安裝access,所以不得不把access資料庫轉換為sql server資料庫。轉換完之後執行發現,在新增記錄時,用recordset addnew之後取不到新增記錄的id號,update之後同樣取不到id號。那個鬱悶啊,哦使搞的哦。

最後發現資料庫裡有乙個引數@@identity,它的作用是返回最後插入的標識值。用select @@identity語句即可獲得最後新增這條記錄的id號。有人可能會問,如果兩個客戶端同時對伺服器的資料庫執行新增記錄的操作,取得的值會是多少?

對此,作了乙個試驗:伺服器資料庫有一表test,裡邊有一條記錄,id=1,首先客戶端[馬雲]新添了一條記錄,此時test表新加入的記錄id值為2,select @@identity值顯示也為2;然後客戶端[比爾·蓋茨]新添了一條記錄,test表新增記錄的id值為3,select @@identity值顯示為3。這個時候[馬雲]再執行select @@identity,返回值仍舊是2,令[馬雲]大吃一驚,令[比爾·蓋茨]大跌眼鏡!沒想到select @@identity只與當前產生的會話有關係,在不同客戶端出現併發操作時不會影響某個客戶端的@@identity值。

乙個引數引起的血案

問題產生實際情況 資料庫被強制乾掉,空間漲到100 分析 經觀察發現是由於pg log目錄增長過快導致磁碟空間被爆。pg log是如何產生的?記錄資料庫執行日誌,內容可讀,預設關閉,需要設定引數啟動。1.error資訊。2.定位慢查詢sql。3.資料庫的啟動關閉資訊。4.pg系統相關警告資訊等。根據...

乙個變數定義引起的血案

8月1號凌晨的時候,我在夢中被叫醒,讓我立即去公司看乙個問題並且修改。我心裡當然有點小鬱悶,工作還是必須的。到了公司後,聽專案負責人描述了下,有3萬多條出賬的資料無法扣費。原來是通過使用者id進行入賬扣費。局方突然改為寬頻id進入入賬。導致了這個結果。當然寬頻id也必須保證是可以入賬的。檢視了下這3...

乙個BOM引起的Hessian血案

6月11日下午專案上線乙個新的功能之後,12日上午發現,與外部服務通過hessian互動的功能失效。一邊與兄弟部門的同學一起查詢一邊進行 回滾 也是我到公司一年以來第一次 回滾 發現呼叫hessian時候會報錯 1 2 3 4 5 6 7 8 9 10 12 jun 201506 47 44utc ...