已经建立存储过程 却报错找不到存储过程

来源:百度知道 编辑:UC知道 时间:2024/06/02 16:20:57
create proc killspid (@dbname varchar(20))
as
begin
declare @sql nvarchar(500),@temp varchar(1000)
declare @spid int
set @sql='declare getspid cursor for
select a.spid from sysprocesses a inner join sysprocesses b
on a.spid=b.blocked where a.dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status < >-1
begin
set @temp='kill '+rtrim(@spid)
exec(@temp)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end

--用法
use mast

你的存储过程名是killspid,执行就要用exec killspid,

该是在begin
set @temp='kill '+rtrim(@spid)
exec(@temp)

这里是exec killxx,当然找不到咯,执行的存储过程名不能乱改。

我没仔细看,你是不是想用@spid作为存储过程的参数?
那就改成begin
set @temp='killspid '+rtrim(@spid)
exec(@temp)

你这个存储过程有没有指定数据库啊
如果你指定了 那你在调用的时候 也是在刚才指定的那个数据库里

use Demodb
create proc
as
go
调用时 应在同一数据库

存储过程需要在master创建