[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