有没有遇到过可执行程序插入数据到sql数据库一个表中,程序已经结束了,但是表中的数据不停的增加,这是什么原因?(注:是从两个服务器中取数据向第三个服务器插入数据)
如果没有触发器之类,那么很正常,程序只是向数据库管理器发送了一个语句,程序结束,SQL语句没执行完成。
这个数据肯定是你程序添加的数据吧...要不然就诡异了哦
你不会是一个while循环,1秒钟发了几百个insert。然后网络包就堵在那儿了。
没有用while循环,用的foreach...for循环嵌套。。。
不知道你用的是什么东西?
1.断点查一下你循环嵌套使用的要写入SQL语句,那段的代码,如果你确认这部分代码并没有产生循环插入语句
2.像1楼说的 看看SQL数据库是否设置正确。
3.SQLserver 数据库好像还有一个(2005以上叫profile)监视器的东西,你监视一下,看看都是哪些产生的插入语句
用SQL Server Profiler跟一下看看SQL的执行情况
跟踪一下,多半是相关存储过程或者触发器引起的,服务器之间传输数据用接口最好,程序没有那么聪明,怎么会无缘无故增加呢?
恩恩,用的是接口,是从两个服务器取数据,往第三个服务器上传
“用的foreach...for循环嵌套” 问题就出在这里。
程序你强制结束, 但他的执行动作仍会执行一会,特别是程序遇到循环的时候。
所以请你跟踪下, for语句是否真的执行一次而已。
ps: 你可以做个实验, 在页面上写for循环10万次。 运行后, 你把页面关闭, 然后你刷新数据库表, 就能看到数据还是会录入的。