class= " lineNumbers "
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:
|
class=
>view " class= " id= " codeSnippet845384 4
И Loginame НЕ В (.............)
ГРУППА dbid, имененем ведущего, loginame, d.client_net_address
ИДИТЕ
proc:
УСТАНОВИТЕ ANSI_NULLS ДАЛЬШЕ
ИДИТЕ
УСТАНОВИТЕ QUOTED_IDENTIFIER ДАЛЬШЕ
ИДИТЕ
СОЗДАЙТЕ PROC [dbo]. [usp_OpenCxns] (
=NULL @login varchar (50)
)
КАК
УСТАНОВИТЕ NOCOUNT ДАЛЬШЕ;
/* просто возвращает все активно соединения, в базу данных.
@login EXEC dbo.usp_OpenCxns = «xxxx» *
НАЧНИТЕ TRAN
НАЧНИТЕ ПОПЫТКУ
/* ВЫБИРАЮТ db_name (dbid) по мере того как DatabaseName, именя ведущего именени ведущего, IPaddress d.client_net_address, loginame как LoginName, отсчет (dbid) как NoOfConnections
ОТ sys.sysprocesses s СОЕДИНЯЕТ sys.dm_exec_connections d НА s.spid = d.session_id
ГДЕ dbid > 4
И (@login БУДЕТ iname НУЛЕВЫХ ИЛИ s.log = @login)
ГРУППА ROLLUP (dbid, имененем ведущего, loginame, d.client_net_address)
ЗАКАЗ DatabaseName, LoginName, d.client_net_address, NoOfConnections *
ВЫБЕРИТЕ DatabaseName, именя ведущего, IPAddress, LoginName, NoOfConnections
ОТ dbo.vw_ActiveCxns
ГДЕ (@login БУДЕТ НУЛЕВО ИЛИ LoginName = @login)
ПОПЫТКА КОНЦА
НАЧНИТЕ ЗАДВИЖКУ
ROLLBACK
ЗАДВИЖКА КОНЦА
ЕСЛИ @@TRANCOUNT >0
ПОРУЧИТЕ TRAN
УСТАНОВИТЕ NOCOUNT;
ИДИТЕ
|