資料庫名稱: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