我有一个非常简单的INSERT语句,是从
Linux Apache Web服务器上运行的
PHP脚本执行的.我可以在sql Management Studio中运行查询,并且它通常也可以从PHP运行.但是,每隔一段时间我就会从我的PHP脚本中收到一条错误消息,指出查询失败并且mssql_get_last_message()函数返回’语句已被终止’.
哪些源可以导致从sql Server返回此消息?
您已经找到了sql Server中最烦人的部分之一.在某些情况下可能会引发错误,并且sql将生成两条错误消息:第一个用于解释错误是什么,第二个用于说出有用的内容,例如“语句已被终止”(从技术上讲,这是错误编号) 3621).问题是sql,以及触及它的大多数其他东西 – 例如PHP – 只能看到/拾取/处理/或以其他方式利用最后一个unlcear错误消息.那个实际有用的东西会丢失.
找出正在发生的事情的快速方法是运行导致SSMS错误的命令序列.显然,这对你不起作用.
一个比较简单的方法是启动sql事件探查器来跟踪异常事件,然后运行您的进程.这应该显示发生的所有错误.抛弃相关的其他事件(SP:Starting,SP:StmtStarting,sql:BatchStarting,适用于您提交给数据库的代码)将显示哪个命令引发错误.