[ sallle @ 30.06.2008. 16:47 ] @
1.
jel ima neka sp da proverim sa kog ip-a sam trenutno konektovan. - konkretno unutar triggera bih prilikom zapisa da uhvatim i ip sa kog dolazi konekcija

2. kako da proverim koje su databases in use . - pre drop-ovanja da izvrsim proveru

3. kako za diskonektujem konekcije (koje mi prave problem u tacki 2)

za sve tri tacke mi treba t-sql (posto iz win aplikacije radim)


hvala
[ Koce @ 01.07.2008. 08:20 ] @
1. Nesto od toga (host...) mozes da nadjes preko sp_who i so_who2, mislim da nisu dokumentovane, pa se malo poigraj sa tim

2)
za 2 uradis nesto ovako:
SELECT distinct db_name(dbid) FROM master..sysprocesses


3)
DECLARE @spid varchar(6)

DECLARE spid_cursor CURSOR
FOR SELECT cast(spid as varchar(6)) FROM master..sysprocesses WHERE dbid=db_id(@DATABASE_TARGET)

OPEN spid_cursor
FETCH NEXT FROM spid_cursor INTO @spid
WHILE (@@fetch_status = 0)
BEGIN
exec ('kill ' + @spid)
FETCH NEXT FROM spid_cursor INTO @spid
END
CLOSE spid_cursor
DEALLOCATE spid_cursor
PRINT 'Uradio kill processes'




;)
[ sallle @ 02.07.2008. 09:02 ] @
thx a lot :)
[ sallle @ 09.07.2008. 10:41 ] @
elem...

prilikom dropovanja, restorovanja i slicno, treba svi useri (konekcije) da budu diskonektovani.


Taj diskonekt bi trebalo da bude u istoj transakciji sa dropom (alterom i sl) - da se ne bi desilo da se neko u trenutku kad smo diskonektovali sve usere , a neposredno pre dropovanja nakaci na bazu.
problem je sto drop, alter i sl ne mogu da se ubace u multi-statement transakciju.

Tak da je moje resenje sledece:

-nakaciti se na master bazu
-ALTER TABLE imeBaze SET OFFLINE WITH ROLLBACK IMMEDIATE -- ovo diskonektuje sve
- DROP , RESTORE, ALTER i slicno
-ALTER TABLE imeBaze SET ONLINE