MSQL能否实现在存储过程断开自身连接?

qiuyan81 2008-12-19 03:07:47
我想在存储过程里关闭自身的连接,主要是验证客户端版本.以前写的程序都没做版本验证的,
没有提供接口,现在想在以前写的存储过程里实现,这样所有的客户断都能够调用到这个验证,
发现版本老的时候,服务器就主动断开连接.
公司的C/S ERP系统大概有几百个客户端,
所以每台电脑手动去更新不怎么现实,而且有些人不在电脑旁边,也没办法更新到,肯定会有遗漏.



我尝试过KILL @@SPID 提示不能KILL自身进程.
用raiserror 发现严重级别大于18的不能使用.
...全文
68 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiuyan81 2008-12-19
  • 打赏
  • 举报
回复
搞定~~放分~
fcuandy 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 qiuyan81 的回复:]
引用 7 楼 fcuandy 的回复:
SQL codeRAISERROR('看看后面的会不会继续',50001,21) WITH LOG
SELECT * FROM x


我测试了下,程序会自动关闭,没办法提示'看看后面的会不会继续'这句话.
[/Quote]

这就是你程序处理的问题了。
qiuyan81 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fcuandy 的回复:]
SQL codeRAISERROR('看看后面的会不会继续',50001,21) WITH LOG
SELECT * FROM x
[/Quote]

我测试了下,程序会自动关闭,没办法提示'看看后面的会不会继续'这句话.
qiuyan81 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fcuandy 的回复:]
SQL codeRAISERROR('看看后面的会不会继续',50001,21) WITH LOG
SELECT * FROM x
[/Quote]


你的好象可以,我测试下,OK就给分你.
dobear_0922 2008-12-19
  • 打赏
  • 举报
回复
估计是不行。
fcuandy 2008-12-19
  • 打赏
  • 举报
回复
RAISERROR('看看后面的会不会继续',50001,21) WITH LOG
SELECT * FROM x
dawugui 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 qiuyan81 的帖子:]
我想在存储过程里关闭自身的连接,主要是验证客户端版本.以前写的程序都没做版本验证的,
没有提供接口,现在想在以前写的存储过程里实现,这样所有的客户断都能够调用到这个验证,
发现版本老的时候,服务器就主动断开连接.
公司的C/S ERP系统大概有几百个客户端,
所以每台电脑手动去更新不怎么现实,而且有些人不在电脑旁边,也没办法更新到,肯定会有遗漏.


我尝试过KILL @@SPID 提示不能KILL自身进程.
用raiserror 发现严重级别大于18的不能使用.[/Quote]
不能,需要在系统中(开发语言中)自己编写代码来断开与数据库的连接.
貌似大多代码都用:disconnect ....
mengxj85 2008-12-19
  • 打赏
  • 举报
回复
关注
等不到来世 2008-12-19
  • 打赏
  • 举报
回复
怎么能在存储过程里实现。。。
存储过程是处理数据返回信息的,
数据库的断开/连接是ADO.NET的事情。

存储过程里检测版本,发现老版本就抛个错误,再由ADO判断,把连接close就行了。
qiuyan81 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 roy_88 的回复:]
用kill +[指定數據庫連接@@spid]+
[/Quote]

我主帖上有说明 Kill @@SPID不能用,请你先去验证下.

中国风 2008-12-19
  • 打赏
  • 举报
回复
這樣的操作由程序完成;
中国风 2008-12-19
  • 打赏
  • 举报
回复
用kill +[指定數據庫連接@@spid]+

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧