powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Detach Database и Clear Connections using this database.
3 сообщений из 3, страница 1 из 1
Detach Database и Clear Connections using this database.
    #32813398
sergei.knyazev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возникают проблемы при детаче базы, которой сделали SqlConnection.Close();
MSSQL говорит что база ещё используется.

В Enterprise Manager есть в окошке Detach Database кнопка Clear, которая will end all active transactions in this database which is required before the database can be detached . И после этого база детачится «на ура». Очень хотелось бы научиться делать такое в коде.

Не подскажите, что она такое волшебное делает?
...
Рейтинг: 0 / 0
Detach Database и Clear Connections using this database.
    #32813464
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
string dbname="TestOff"; // имя отключаемой БД
			
SqlCommand    cm;
// подключамся к БД master
SqlConnection cn=new SqlConnection("Integrated Security=SSPI;Initial Catalog=master;Data Source=STORAGE;");
cn.Open();
try
{  // переводим базу в режим одного пользователя (себя любимого :)
  cm=new SqlCommand("ALTER DATABASE "+dbname+" SET SINGLE_USER WITH ROLLBACK IMMEDIATE", cn);
  cm.ExecuteNonQuery();
  // отключаем базу от сервера
  cm=new SqlCommand("sp_detach_db '"+dbname+"'", cn);			
  cm.ExecuteNonQuery();
}
catch(Exception ex)
{ /* обработка ошибок */
}
cn.Close();
...
Рейтинг: 0 / 0
Detach Database и Clear Connections using this database.
    #32817929
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SqlConnection.Close(); - и коннект ушел в спул примерно на минуту, т.е. подключение к базе еще существует и детач невозможен.

Попробуй перед закрытием выполнить инструкцию USE master, тогда коннект при закрытии будет висеть минуту на базе master и не мешать делать детач нужной базы.

А можно еще и спулигн выключить - подробности в MSDN на предмет ключей строки соединения (для ADO.NET только)

Код: plaintext
1.
 _________
Свет в конце тоннеля временно потушен по техническим причинам. 
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Detach Database и Clear Connections using this database.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]