Hola a todos: Tengo una duda, no se como poder desconectar a todos los usuarios que estén conectados a una base de datos. La unica manera que puedo hacerlo es reiniciar el servicio MSSQLServer, y creo que es un poco expeditivo. Supongo que habrá una manera mejor de hacerlo Muchas gracias Salu2
Podes usar sp_who para identificar a los usuarios con sus ID y luego Kill ID. Te dire que también es expeditivo, pero al menos, selectivo. Luis Martin Moderator SQL-Server-Performance.com One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important Bertrand Russell All postings are provided “AS IS†with no warranties for accuracy.
Hay alguna manera de echar a todos los usuarios, que estén conectados a una base de datos. y dejar a los que están en otras bases de datos que puedan seguir trabajando. Gracias
Con el administrador corporativo, seleccionar la base de datos, botón derecho del ratón--->separar base de datoss----> indica el número de usuarios conectados, si es 0 no hay nadie, pulsar cancelar para no separar la base de datos, si es distinto de 0 pinchar el botón borrar, pide confirmación y si se desea enviar un mensaje de aviso, cuando el número de usuarios sea 0 pinchar en cancelarr
Lo que dice Octavio es cierto, solamente que a veces el EM por ser GUI puede tener problemas o demoras. De la misma forma puedes seleccionar con sp_who aquellos usuarios que estan conectados a la base en cuestion y luego usar el Kill como describà en el otro post. Luis Martin Moderator SQL-Server-Performance.com One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important Bertrand Russell All postings are provided “AS IS†with no warranties for accuracy.
Muchas gracias es justo lo que necesitaba, ya que el método del Kill para mi caso es un poco tedioso, ya que puedo tener mas de 200 conexiones con distintos usuarios, si tengo que hacer para cada uno un Kill, cuando haya acabado seguro que se han conectado mas gente. Saludos Nacho
Siempre podés recurrir a un script, o un query que te contruya uno. Por ejemplo: select 'Kill ' + str(spid) from master..sysprocesses p, master..sysdatabases d where p.status != 'BACKGROUND' andd.dbid = p.dbid and d.name = 'MiDatabase'
Y si quiero que el resultado de la select se ejecute directamente? como puedo hacerlo para que lo haga todo seguido (listar los SPID y hacer los KILLS) ? Saludos Nacho
PodrÃas utilizar el siguiente script: Set nocount on Declare @nOrden int Declare @nOrdenMax int Declare @cSQL varchar(255) if object_id('tempdb..#spid') is not null Drop table #spid Select identity(int,1,1) as nOrden , d.dbid as dbId, d.name as dbName, loginame as LoginName, spid as SpId, 'Kill ' + str(spid) as cSQL Into #spid From master..sysprocesses p, master..sysdatabases d Where p.status != 'BACKGROUND' And d.dbid = p.dbid And d.name = 'MiDatabase' Select dbId,dbName,spid,LoginName,cSQL From #spid Select @nOrden = min(nOrden ), @nOrdenMax = max(nOrden) From #spid While @nOrden <= @nOrdenMax Begin Select @cSQL = cSQL From #spid Where nOrden = @nOrden Exec( @cSQL ) Set @nOrden = @nOrden + 1 End