数据库名称: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