我尝试使用
java中的预准备语句来杀死MS sql server(8)进程.但我总是收到异常:com.microsoft.sqlserver.jdbc.SQLServerException:第1行:’@ 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){}
}
}
最佳答案 kill只接受数字,而不接受参数.跑:
"kill " + spid
反对连接,它应该工作.或者,让SQL扩展参数:
"declare @query varchar(max)
set @query = 'kill ' + ?
exec (@query)"