Borra todas las sesiones de usuario en una base de datos, excepto su propio (que no se les permite hacer)
DECLARE @mySessionId INT
DECLARE @dbName VARCHAR(50)
SET @dbName = '<Your database name>'
DECLARE @spid int
CREATE TABLE #UserSessions (spid SMALLINT, ecid SMALLINT, [Status] NCHAR(30), loginname NCHAR(128), hostname NCHAR(128), blk CHAR(5), dbname NCHAR(128), cmd NCHAR(16), request_id INT)
INSERT INTO #UserSessions ([spid], ecid, [Status], [loginname], [hostname], blk, [dbname], cmd, request_id) EXEC dbo.sp_who
SELECT @spid = min(spid) FROM #UserSessions WHERE NOT hostname = HOST_NAME() AND dbName = @dbName AND [status] = 'sleeping'
WHILE @spid IS NOT NULL
BEGIN
EXECUTE ('KILL ' + @spid)
SELECT @spid = min(spid) FROM #UserSessions WHERE NOT hostname = HOST_NAME() AND dbName = @dbName AND spid > @spid AND [status] = 'sleeping'
END
DROP TABLE #UserSessions
Por "simplemente hace girar sus ruedas", ¿Quiere decir que no se obtiene ningún mensaje en absoluto? Ningún error de ningún tipo? Hay una lista de argumentos ALTER que SQL Azure no admite en MSDN (http://msdn.microsoft.com/en-us/library/ee336286.aspx), pero todos estos deberían proporcionarle mensajes de error. – tijmenvdk
¿Puede publicar la declaración ALTER real? El esquema de la tabla (script "CREATE") sería útil también. El modo Usuario único debería funcionar en el FYI de Azure, solo tiene que conectarse al db maestro –
Esto no funciona como está en Azure, falla con "Sintaxis incorrecta cerca de 'SINGLE_USER'." –