[SQL ] MS SQL 2008奇妙的INSERT問題 m(_ _)m

作者: howard2010 (Howard)   2019-06-22 11:37:44
資料庫名稱:SQL Server 2008
資料庫版本:10.0.4000
內容/問題描述:
各位前輩們好:
  我最近遇到一個資料庫奇怪的問題,首先先介紹環境;
OS:Windows Server 2008 R2
DB:SQL Server 2008 10.0.4000
就是我有個特定的Table使用以下方式輸入資料的話都正常
INSERT INTO "表格名" ("欄位1", "欄位2", ...)
VALUES ("值1", "值2", ...);
但是只要用其他Table SELECT後的結果再INSERT就會有問題,
語法類如下
INSERT INTO "表格1" ("欄位1", "欄位2", ...)
SELECT "欄位3", "欄位4", ...
FROM "表格2";
WHERE 某條件
輸入的資料的話,他也會正常顯示成功的筆數沒有報錯,
但是實際SELECT卻撈不到,也可以再次INSERT都沒有報錯(正常光PK就被擋…)。
我這邊試了如果同一次查詢同時INSERT後馬上SELECT是確定資料有進去的,
但是再次單獨SELECT就發現資料不見神奇的被RollBack
所以我嘗試了幾種解決方案
1. 移出舊資料降Table容量(原17GB→1GB):無效。
2. 舊的Table更名,創個一樣Schema的新Table取代原有Talble:無效。
最後發現只要Table名字是這個特定Table的話就會有這種現象,
舊的Table更名後現象解除,新的Table如果不是這名字的話OK,
相同名字的話就會出問題,Google半天也沒見到那麼怪異的現象。
執行這個語法的AP已經Run了N年沒有問題,
印象是自從最近一次5月底Windows Update後重開機才陸續發生,
原本有偶爾可以、偶爾不行,最近直接死掉。
另外兩台測試機跑同樣的AP也運作無礙,就只有這台有問題。
(連SQL Server 2016跑都OK)
這個Table唯一特殊的地方是有個欄位資料類型是image,存放使用者上傳的檔案,
但是其他Table有image欄位的也沒有出事,真的非常的奇怪。
這個DB上連他的系統10幾套也沒有問題,
只有1支出狀況,查了很久發現是卡在這個點上面
小弟在此先謝謝各位前輩,
希望大家的經驗能讓小弟順利解開這個奇妙的問題 m(_ _)m
作者: cutekid (可愛小孩子)   2019-06-22 13:40:00
臉書有個 Super SQL Server 社團,可以加入後問一下喔~
作者: CSBS (地上波)   2019-06-22 19:11:00
commit?
作者: howard2010 (Howard)   2019-06-23 01:40:00
回C大不是這個問題捏
作者: rockchangnew (rock)   2019-06-23 11:56:00
真的很奇特
作者: konkonchou (卡卡貓)   2019-06-24 22:05:00
單機出問題的話裝SSMS去測試語句會不會過會過檢查connector或.net framework版本跟連接字串不會過 查是不是有trigger做了其他事
作者: howard2010 (Howard)   2019-06-25 07:55:00
以上現象是在SSMS重現的~
作者: konkonchou (卡卡貓)   2019-06-25 09:33:00
如上面說的,SSMS下DML若被rollback,就去查trigger因兩者屬同一交易,不然只好截畫面上來除錯
作者: chungyih (一起喝醉吧)   2019-06-30 22:35:00
確定ssms沒開到commit嗎https://www.itread01.com/p/1399759.html

Links booklink

Contact Us: admin [ a t ] ucptt.com