已超过了锁请求超时时段、杀掉相应数据库的进程、数据库强制还原 的方法
1 Create Proc Sp_KillAllProcessInDB
2
3 @DbName VarChar(100)
4
5 as
6 if db_id(@DbName) = Null
7 begin
8 Print 'DataBase dose not Exist'
9 end
10 else
11
12 Begin
13 Declare @spId Varchar(30)
14
15 DECLARE TmpCursor CURSOR FOR
16 Select 'Kill ' + convert(Varchar, spid) as spId
17 from master..SysProcesses
18 where db_Name(dbID) = @DbName
19 and spId <> @@SpId
20 and dbID <> 0
21 OPEN TmpCursor
22
23 FETCH NEXT FROM TmpCursor
24 INTO @spId
25
26 WHILE @@FETCH_STATUS = 0
27
28 BEGIN
29
30 Exec (@spId)
31
32 FETCH NEXT FROM TmpCursor
33 INTO @spId
34
35 END
36
37
38 CLOSE TmpCursor
39 DEALLOCATE TmpCursor
40
41 end
42
43 GO
44 --To Execute
45 Exec dbo.Sp_KillAllProcessInDB 'DBname'
2
3 @DbName VarChar(100)
4
5 as
6 if db_id(@DbName) = Null
7 begin
8 Print 'DataBase dose not Exist'
9 end
10 else
11
12 Begin
13 Declare @spId Varchar(30)
14
15 DECLARE TmpCursor CURSOR FOR
16 Select 'Kill ' + convert(Varchar, spid) as spId
17 from master..SysProcesses
18 where db_Name(dbID) = @DbName
19 and spId <> @@SpId
20 and dbID <> 0
21 OPEN TmpCursor
22
23 FETCH NEXT FROM TmpCursor
24 INTO @spId
25
26 WHILE @@FETCH_STATUS = 0
27
28 BEGIN
29
30 Exec (@spId)
31
32 FETCH NEXT FROM TmpCursor
33 INTO @spId
34
35 END
36
37
38 CLOSE TmpCursor
39 DEALLOCATE TmpCursor
40
41 end
42
43 GO
44 --To Execute
45 Exec dbo.Sp_KillAllProcessInDB 'DBname'
摘自:http://www.cnblogs.com/LCX/archive/2008/12/03/1346924.html