作者howard2010 (Howard)
看板Database
标题[SQL ] MS SQL 2008奇妙的INSERT问题 m(_ _)m
时间Sat Jun 22 11:37:44 2019
资料库名称: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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.169.87.244 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1561174666.A.D79.html
※ 编辑: howard2010 (118.169.87.244 台湾), 06/22/2019 11:38:32
1F:推 cutekid: 脸书有个 Super SQL Server 社团,可以加入後问一下喔~ 06/22 13:40
2F:推 CSBS: commit? 06/22 19:11
3F:→ howard2010: 回C大不是这个问题捏 06/23 01:40
4F:推 rockchangnew: 真的很奇特 06/23 11:56
5F:→ konkonchou: 单机出问题的话装SSMS去测试语句会不会过 06/24 22:05
6F:→ konkonchou: 会过检查connector或.net framework版本跟连接字串 06/24 22:06
7F:→ konkonchou: 不会过 查是不是有trigger做了其他事 06/24 22:07
8F:→ howard2010: 以上现象是在SSMS重现的~ 06/25 07:55
9F:→ konkonchou: 如上面说的,SSMS下DML若被rollback,就去查trigger 06/25 09:33
10F:→ konkonchou: 因两者属同一交易,不然只好截画面上来除错 06/25 09:34
11F:推 chungyih: 确定ssms没开到commit吗 06/30 22:35