Mai mult
Cum omori toate conexiunile curente la o baza de date SQL Server 2005?
Vreau să redenumiți o bază de date, dar tot primesc eroarea asta 'n't obține exclusiv de blocare' pe bază de date, care implică există o legătură(s) încă activ.
Cum pot ucide toate conexiunile la baza de date, astfel încât să pot redenumi?
284
19
A Se Vedea Ucide Toate Conexiunile Active La O Bază De Date.
Motivul pentru care abordarea pe care Adam suggested a câștigat't de lucru este că în momentul în care ești looping peste conexiuni active nou poate fi stabilit, și te'll-e dor de acele. În articol am legat utilizează următoarele abordări care nu au acest dezavantaj:
Script pentru a realiza acest lucru, înlocuiți 'NUME_BD' cu baza de date pentru a ucide toate conexiunile la:
Ucide și ucide cu foc:
Folosind SQL Management Studio Express:
În Object Explorer copac detalia sub Management pentru a "Monitor de Activitate" (dacă nu puteți găsi acolo, apoi click dreapta pe serverul de baze de date și selectați "Monitor de Activitate"). Deschide Activity Monitor, puteți vizualiza toate procesa informatii. Tu ar trebui să fie capabil de a găsi încuietori pentru baza de date te're interesat în și ucide aceste încuietori, care va ucide, de asemenea, conexiunea.
Tu ar trebui să fie capabil de a redenumi după aceea.
Am'am folosit mereu:
Ia deconectat nevoie de un timp și, uneori, am experimenta unele probleme cu asta..
Cel mai solid mod, în opinia mea:
Detașa Click dreapta DB -> Sarcini -> Detașa... verificați "Drop Conexiuni" Ok
Reatașați Click dreapta Baze de date -> Atașați.. Adauga... -> selectați baza de date, și de a schimba Atașa la Fel de coloana a dorit, numele bazei de date. Ok
folosi 'master' date și a alerga această interogare, acesta va ucide toate conexiunile active din baza de date.
Eu de obicei rula în eroare atunci când sunt încercarea de a restabili o bază de date de obicei doar du-te la partea de sus a copac în Management Studio și dați clic dreapta și reporniți serverul de baze de date (pentru ca's pe o mașină de dezvoltare, acest lucru nu ar putea fi idealul în producție). Acest lucru este de a închide toate conexiunile de date.
În MS SQL Server Management Studio pe obiect explorer, click dreapta pe baza de date. În meniul contextual care urmează selecta 'Sarcini -> Ia Deconectat'
Aici's cum sa fiabil acest fel de lucru în MS SQL Server Management Studio 2008 (pot lucra pentru alte versiuni prea):
Un alt "ucide cu foc" abordare este să reporniți serviciul MSSQLSERVER. Îmi place să fac lucrurile de comandă. Lipirea exact în CMD va face: NET STOP MSSQLSERVER & NET START MSSQLSERVER
Sau să deschideți "servicii.msc" și de a găsi "SQL Server (MSSQLSERVER)" și faceți clic dreapta, selectați "restart".
Acest lucru va "sigur, sigur" ucide TOATE conexiunile la TOATE bazele de date care rulează pe acel exemplu.
(Îmi place acest lucru mai bine decât multe abordări care se schimba și de a schimba înapoi de configurare pe server/baza de date)
Opțiunea lucru pentru mine în acest scenariu este după cum urmează:
Click dreapta pe numele bazei de date, faceți clic pe Proprietăți pentru a obține fereastra de proprietăți, Deschideți fila Opțiuni și de a schimba "Restricționa Accesul" proprietate de Utilizator Multiple pentru un Singur Utilizator. Când te-a lovit pe butonul OK, se va solicita pentru a închide toate conexiune deschisă, selectați "Da" și vă sunt setate pentru a redenumi baza de date....
Încercați acest lucru:
Aceste n't de lucru pentru mine (SQL2008 Enterprise), de asemenea, am putea't vedea toate procesele care rulează, sau utilizatori conectat la DB. Repornirea server (click Dreapta pe Sql Server Management Studio și alege Restart) mi-a permis să reinstituie nivelul din PB.
Am'm folosind SQL Server 2008 R2, DB mea a fost deja stabilit pentru un singur utilizator și există o legătură interzisă orice acțiune în baza de date. Astfel recomandat SQLMenace's soluție a răspuns cu eroarea. Aici este una care a funcționat în cazul meu.
Eu folosesc sp_who pentru a obține lista tuturor proces în baza de date. Acest lucru este mai bună pentru că poate doriți să revizuiască care procesul de a ucide.
Rezultat Puteți utiliza comanda în KillCommand coloana a ucide procesul vrei.
Puteți Utiliza SP_Who comandă și ucide toate procesele care utilizează baza de date și apoi redenumiți baza dumneavoastră de date.