2013-02-21 13 views
9

Próbuję użyć instrukcji KILL z zadeklarowaną zmienną, ale daje mi błąd składni. Czy mimo to nie używać stałej i programowo zmieniać SPID?Używanie KILL z zadeklarowaną zmienną

Na przykład:

DECLARE @SPID smallint 
SET @SPID = 100 
Kill @SPID 

BTW to jest tylko przykład. Muszę uruchomić kill w pętli z kursorem, aby pozbyć się starych, trwałych połączeń użytkownika. (Nie pytaj)

Odpowiedz

13

Myślę, że do tego będzie potrzebny dynamiczny SQL. Zanim zaczniesz cokolwiek z dynamicznym SQL, przeczytaj this essential page.

DECLARE @SPID smallint 
DECLARE @SQL nvarchar(1000) 

SET @SPID = 100 

SET @SQL = 'KILL ' + CAST(@SPID as varchar(4)) 

EXEC (@SQL) 
1

Zawsze można to zrobić za pośrednictwem SMO jak również przy użyciu PowerShell lub C#:

http://msdn.microsoft.com/en-gb/library/microsoft.sqlserver.management.smo.server.killprocess(v=sql.110).aspx

Ten rodzaj zarządzania serwerem SQL i kodu, który idzie z nim jest tylko to, co PowerShell, a następnie SMO są dobre w, a T-SQL może czasami być skrzypce.

+1

To długa droga na naprawdę krótką przejażdżkę. – JVC

+0

Tak, dla tego przykładu, ale można zrobić tak dużo z SMO, gdy tylko się go opanuje. Nauka korzystania z niego (i powershell) otwiera całe mnóstwo możliwości usprawnienia i automatyzacji zarządzania serwerem SQL. – steoleary

Powiązane problemy