Как передать параметр времени ожидания в SQL Database Engine - PullRequest
3 голосов
/ 24 июня 2009

Я выполняю запрос, который истекает в течение первых двух раз и возвращает результаты в третий раз.

Как мне сказать SQL Server подождать, пока запрос не будет завершен, а не истечет время ожидания?

Ответы [ 3 ]

5 голосов
/ 24 июня 2009

По умолчанию для SqlCommand.CommandTimeout установлено значение 30 секунд. Вы можете назначить более длительную продолжительность перед выполнением запроса или установить 0 для отсутствия тайм-аута. (если вопрос касается программирования .Net)

1 голос
/ 24 июня 2009

Тайм-аут контролируется клиентским приложением, а не сервером. Это время, когда клиент готов ждать ответа от сервера.

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

Например, в VBA с ADODB вы можете установить тайм-аут на 60 с следующим образом:

Dim cn As ADODB.Connection
Set cn = new ADODB.Connection
cn.CommandTimeout = 60 

Как указывал Шейн выше, вы также можете установить его в строке подключения.

Я думаю, вы можете установить его на 0, чтобы он никогда не истекал, но это не рекомендуется, поскольку это означает, что если сервер зависает или вы теряете соединение с БД, ваше приложение будет ждать вечно. 1012 *

1 голос
/ 24 июня 2009

Вы также можете установить его для всего соединения в строке соединения.
"Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=SSPI;Connection Timeout=30"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...