Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как отключить всех пользователей от некоторой базы / 6 сообщений из 6, страница 1 из 1
19.11.2002, 17:04:46
    #32069759
Necto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех пользователей от некоторой базы
...
Рейтинг: 0 / 0
19.11.2002, 17:07:01
    #32069760
fima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех пользователей от некоторой базы
перевести её в однопользовательский режим.
...
Рейтинг: 0 / 0
19.11.2002, 17:13:34
    #32069766
Necto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех пользователей от некоторой базы
Если не секрет то как?
...
Рейтинг: 0 / 0
19.11.2002, 17:17:28
    #32069769
Тимур
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех пользователей от некоторой базы
Покапайся в коде, думаю разберешься :0)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
print '====[WORKING : ZLO]======================================================================================'
DECLARE ZLO CURSOR
FOR 
select 
  SDB.name	   as DB,
  SSP.spid	   as SPID,
  SSP.hostname     as HOST,
  SSP.program_name as PROGZ,
  SSP.loginame     as LOGIN
from 
  dbo.sysprocesses SSP
    inner join
  dbo.sysdatabases  SDB
    on SSP.dbid=SDB.dbid
where 
  SDB.name in ('GSKEKB','GSKNSK','SHOPNEW') and   --название серверов
 
  SSP.hostname <> 'PC122'  --сетевое имя машины
 

DECLARE 
  @Login varchar( 40 ),
  @Host  varchar( 40 ),
  @Progz varchar( 40 ),
  @DB    varchar( 40 ),
  @Spid  int,
  @SQL   nvarchar( 2000 )

OPEN ZLO

FETCH NEXT FROM ZLO 
  INTO @DB,@Spid,@Host,@Progz,@Login
WHILE (@@fetch_status <> - 1 )
BEGIN
	IF (@@fetch_status <> - 2 )
	BEGIN
         select @SQL = 'kill '+cast(@Spid as varchar( 5 ))
         exec sp_executesql @SQL
	 print 'kicked uzwer : '+cast(@Spid as varchar( 5 ))+'/'+RTRIM(LTRIM(@Host))+' from ['+RTRIM(LTRIM(@DB))+'] with login ['+RTRIM(LTRIM(@Login))+'] PROGA : ['+RTRIM(LTRIM(@Progz))+']'         
	END
	FETCH NEXT FROM ZLO 
          INTO @DB,@Spid,@Host,@Progz,@Login
END

CLOSE ZLO
DEALLOCATE ZLO
GO
print '====[END WORKING : ZLO]=================================================================================='
...
Рейтинг: 0 / 0
19.11.2002, 17:23:22
    #32069772
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех пользователей от некоторой базы
Можно так:

Код: plaintext
ALTER DATABASE MyDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE


Учтите, что активные транзакции будут откачены.
...
Рейтинг: 0 / 0
19.11.2002, 17:30:26
    #32069779
fima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отключить всех пользователей от некоторой базы
2Тимур а если после исполнения кода кто - нибудь присоединится?
2Necto кроме WITH ROLLBACK IMMEDIATE посмотрите параметры ROLLBACK AFTER integer [SECONDS] и NO_WAIT в BOL может они подойдут.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как отключить всех пользователей от некоторой базы / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]