JaspalSingh03 Ответов: 1

Извлечение всего имени базы данных из имени сервера в локальной сети


Я хочу получить доступ ко всей локальной базе данных с имени сервера, но получить только отдельные сведения о системе.

Что я уже пробовал:

SELECT	@@SERVERNAME as ServerName,
		DB_NAME(dbid) as DBName, 
		hostname as MachineName ,
		COUNT(dbid) as NumberOfConnections,
		loginame as LoginName,
		ConnectionProperty('client_net_address') AS 'Client Net 			Address'
		
--FROM sys.sysprocesses with (nolock) 
FROM sys.sysprocesses
WHERE dbid > 0 
and len(hostname) > 0 
and DB_NAME(dbid)=; 
Group by DB_NAME(dbid),hostname,loginame
order by DBName

1 Ответов

Рейтинг:
8

#realJSOP

Это соединение - ваша машина?

Если да, то кто-нибудь еще подключен к базе данных в это время?

Кстати, избавьтесь от and DB_NAME(dbid)=; линия. Ваш пример запроса не будет выполняться в sql server так, как у вас там.

РЕДАКТИРОВАТЬ ==============================

Я нашел это с помощью google (поисковая фраза= "sql server get all current connections").

DECLARE @SPWHO2 TABLE 
    ([SPID] VARCHAR(1000),
     [Status] VARCHAR(1000) NULL, 
     [Login] VARCHAR(1000) NULL, 
     [HostName] VARCHAR(1000) NULL, 
     [BlkBy] VARCHAR(1000) NULL, 
     [DBName] VARCHAR(1000) NULL, 
     [Command] VARCHAR(1000) NULL, 
     [CPUTime] VARCHAR(1000) NULL, 
     [DiskIO] VARCHAR(1000) NULL, 
     [LastBatch] VARCHAR(1000) NULL, 
     [ProgramName] VARCHAR(1000) NULL, 
     [SPID2] VARCHAR(1000) NULL, 
     [Request] VARCHAR(1000) NULL)
INSERT INTO @SPWHO2 
    EXEC sp_who2 'Active'
SELECT * FROM @SPWHO2


Я единственный человек, вошедший на мой сервер прямо сейчас, поэтому он показывает только одну запись, поэтому я не могу определить, будет ли это то, что вам нужно.