Поделиться через


Контекстные соединения и обычные соединения — ограничения

Область применения: SQL Server

В этом разделе рассматриваются ограничения, связанные с кодом, выполняемым в процессе Microsoft SQL Server с помощью контекста и регулярных подключений.

Ограничения контекстных соединений

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

  • В определенное время для заданного соединения может существовать только одно открытое контекстное соединение. Если имеется несколько инструкций, параллельно выполняемых в отдельных соединениях, каждая из них может иметь собственное контекстное соединение. Ограничение не влияет на параллельные запросы из различных соединений, оно влияет только на конкретный запрос в отдельном соединении.

  • Режим MARS не поддерживается в контекстных соединениях.

  • Класс SqlBulkCopy не работает в контекстных соединениях.

  • Пакетное обновление не поддерживается в контекстных соединениях.

  • SqlNotificationRequest нельзя использовать с командами, применяемыми в контекстном соединении.

  • Отмена команд, применяемых в контекстном соединении, не поддерживается. Метод SqlCommand.Cancel не учитывает запрос, не сообщая об этом.

  • Никакие другие ключевые слова строки соединения не могут использоваться при использовании «context connection=true».

  • Свойство SqlConnection.DataSource возвращает значение NULL, если строка подключения для SqlConnection имеет значение context connection=true, а не имя экземпляра SQL Server.

  • Установка свойства SqlCommand.CommandTimeout не имеет значения, если команда выполняется в контекстном соединении.

Ограничения обычных соединений

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

  • Асинхронное применение команд к внутренним серверам не поддерживается. Если в строке соединения содержится «async=true», по при последующем выполнении команды возникает исключение System.NotSupportedException . Это сообщение отображается: "Асинхронная обработка не поддерживается при выполнении внутри процесса SQL Server".

  • ОбъектSqlDependency не поддерживается.

См. также

Контекстное соединение