ADO.NET SQLServer: Как препятствовать тому, чтобы закрытое соединение содержало блокировку SDB?

Вам нужна функция, чтобы проверять только символ @, чтобы ее избежать, поэтому:

function avoidEmailPartCharacter(event) {
  const code = event.keyCode || event.which;
  if (code === 64) {
    event.preventDefault();
  }
}

затем вы передаете функцию обработчику ввода keypress, например:

[ 111]

это должно сработать

10
задан Ian Boyd 28 August 2009 в 14:25
поделиться

5 ответов

Вы можете перевести базу данных в однопользовательский режим, чтобы восстановить ее. IIRC, что-то вроде этого ...

ALTER DATABASE TheDatabaseToRestore SET SINGLE_USER WITH  ROLLBACK IMMEDIATE;
RESTORE DATABASE TheDatabaseToRestore 
FROM DISK =N'Z:\Path\To\Backup\BackupFile';
ALTER DATABASE TheDatabaseToRestore SET MULTI_USER;

см .: Получить эксклюзивный доступ для восстановления SQL Server и / или Восстановить резервную копию базы данных с помощью SQL для получения дополнительной информации.

Изменить: Однопользовательский режим предназначен для резервного копирования и восстановления (в неэкспресс-выпуске я его регулярно использую). При его использовании все остальные соединения отключаются, и новые соединения не могут быть установлены. Я не играл с различными опциями «WITH», такими как «ROLLBACK IMMEDIATE», но их использование кажется простым.

7
ответ дан 4 December 2019 в 00:27
поделиться

Читая комментарий, Вы хотите восстановить его.

Хорошо, выведите его из эксплуатации.

Восстановление не что-то, что должно делать приложение, таким образом, DBA выполняет это перед ВОССТАНОВЛЕНИЕМ.

ALTER DATABASE foo SET OFFLINE WITH ROLLBACK IMMEDIATE
0
ответ дан 4 December 2019 в 00:27
поделиться

Вы пробовали SqlClient.ClearPool ?

Из MSDN:

ClearPool очищает пул подключений. что связано с подключение. Если дополнительные подключения связанные с подключением используются на момент звонка они отмечены соответствующим образом и выбрасываются (вместо того, чтобы быть возвращенным в pool), когда для них вызывается Close.

Просто вызывайте ClearPool при каждом подключении, но вы потеряете преимущества объединения, если сделаете это.

public class DataFactory
{
  public SqlConnection CreateConnection(string connString)
  {
    SqlConnection conn = new SqlConnection(connString);
    SqlClient.ClearPool(conn);
    return conn;
   }
}

В качестве альтернативы вы можете отключить объединение всех вместе, используя свойство Pooling строки подключения:

string connString = "Data Source=MYSERVER;Initial Catalog=myDb;Integrated Security=true;Pooling=false"
3
ответ дан 4 December 2019 в 00:27
поделиться

Как вы говорите, когда вы закрываете или удаляете соединение, оно возвращается в пул, но на самом деле не закрывается.

Что вам нужно сделать, чтобы закрыть все соединения в пуле. Это можно сделать с помощью команды ClearAllPools.

ClearAllPools сбрасывает (или очищает) пул соединений. Если есть подключений, используемых во время звоните, они отмечены соответствующим образом и будет удален (вместо возвращается в бассейн), когда Close вызывается на них.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.clearallpools (VS.80) .aspx

Существует также команда ClearPool, которая делает то же самое, но для одного соединения.

Надеюсь, это поможет

Шираз

1
ответ дан 4 December 2019 в 00:27
поделиться

Выполнить «USE TempDB;» первый. Затем закройте его.

Или «USE master;», если вам больше нравится.

Блокировки S-DB для любой из этих баз данных не должны иметь значения во время нормальной производственной работы, поскольку вы не можете избавиться ни от одной из них. и все равно продолжить работу с сервером.

1
ответ дан 4 December 2019 в 00:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: