SQL 2000: Disconnect All Users
October 13th, 2007
If you’ve ever had to do any kind of maintaince on your Microsoft SQL Server 2000 database, you may need this. This script will diconnect any open connections to the specified database (identified by the ‘DBNAME’). Please note that this will kick off any connected users. Special thanks to Kyle Murphy for this script.
-
DECLARE @databaseName varchar(255)
-
SELECT @databaseName = ‘DBNAME’
-
-
DECLARE curkillproc
-
CURSOR FOR SELECT
-
spid,dbs.name AS dbname
-
FROM
-
master..sysprocesses pro,
-
master..sysdatabases dbs
-
WHERE
-
pro.dbid = dbs.dbid AND
-
dbs.name = @databaseName
-
FOR READ ONLY
-
-
DECLARE @varspid AS integer
-
DECLARE @vardbname AS varchar(256)
-
DECLARE @numUsers AS integer
-
SET @numUsers = 0
-
OPEN curkillproc
-
FETCH NEXT FROM
-
curkillproc
-
INTO @varspid, @vardbname
-
WHILE @@fetch_status = 0
-
BEGIN
-
EXEC(‘kill ‘ + @varspid)
-
SET @numUsers = @numUsers + 1
-
FETCH NEXT FROM curkillproc
-
INTO @varspid, @vardbname
-
END
-
CLOSE curkillproc
-
DEALLOCATE curkillproc
-
SELECT @numUsers AS NumUsersDisconnected