从Java Prepared Statement中终止MS SQL进程?

4

我试图使用Java中的预处理语句来终止一个MS SQL Server(8)进程。但是我一直收到异常:com.microsoft.sqlserver.jdbc.SQLServerException: Line 1: Incorrect syntax near '@P0'。

有什么想法吗?

public void killBlockingProcess(int spid)   {
    PreparedStatement ps = null;
    try {
        ps = connection.prepareStatement("kill ?");
        ps.setInt(1, spid);
        boolean res=ps.execute();
    } 
    catch (Exception ex) {
        logger.error(this + ",killBlockingProcess: " + ex.getMessage());
    }
    finally
    {
        try {ps.close(); } catch (Exception exp){}
    }
}
1个回答

2

kill 命令只接受数字作为参数,不接受其他参数。请执行以下命令:

"kill " + spid

防止连接并使其正常工作。或者,让SQL扩展参数:

"declare @query varchar(max)
set @query = 'kill ' + ?
exec (@query)"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接