powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как отключить всех пользователей от некоторой базы
6 сообщений из 6, страница 1 из 1
Как отключить всех пользователей от некоторой базы
    #32069759
Necto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как отключить всех пользователей от некоторой базы
    #32069760
fima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перевести её в однопользовательский режим.
...
Рейтинг: 0 / 0
Как отключить всех пользователей от некоторой базы
    #32069766
Necto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если не секрет то как?
...
Рейтинг: 0 / 0
Как отключить всех пользователей от некоторой базы
    #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
Как отключить всех пользователей от некоторой базы
    #32069772
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так:

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


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


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