|
Программирование >> Программирование баз данных
Следует также отметить, что фактическое количество разрешенных к применению пользовательских соединений зависит от используемой версии SQL Sewer, а также характеристик приложения (приложений) и аппаратных средств. Системная переменная @@max precision Системная переменная @@MAX PRECISION позволяет определить уровень точности, заданный в настоящее время для десятичньпс и других числовых типов данных. По умолчанию эта переменная определяет точность, равную 38 позициям, но это значение может быть изменено с помощью опции /р во время запуска СУБД SQL Server. Параметр /р может быть задан при запуске СУБД SQL Server из командной строки или добавлен к параметрам Startup для службы MSSQLServer в аплете Services операционной системы Windows 2000/2003/ХР. Системная переменная @@nestlevel Системная переменная @@NESTLEVEL содержит данные о текущем уровне вложенности для вложенных хранимых процедур. Для первой хранимой процедуры, подлежащей запуску, значение @@NESTLEVEL равно 0. Если эта хранимая процедура вызывает другую, то вторая хранимая процедура рассматривается как вложенная в первую хранимую процедуру (а значение @@NESTLEVEL увеличивается и становится равным 1). Аналогичным образом, вторая хранимая процедура может вызывать третью и т.д. (вплоть до максимальной глубины вложенности, равной 32 уровням). Если в приложении достигается уровень глубины вложенности больше 32, происходит аварийное завершение транзакции. Из этого следует, что проект подобного приложения должен быть пересмотрен. Системная переменная ©©options Системная переменная ©©OPTIONS предоставляет информацию о том, какие опции заданы с помощью команды SET. Поскольку системная переменная ©©OPTIONS содержит только одно значение, а количество опций, которые могут быть заданы с помощью команды SET, достаточно велико, то в программном обеспечении SQL Server для указания на то, какие значения установлены, используются двоичные флажки. Чтобы проверить, была ли задана интересующая опция, необходимо применить к значению опции оператор побитовой обработки. В качестве примера можно указать следующую конструкцию: IF {©©OPTIONS & 2) Если выражение ©©OPTIONS & 2 принимает значение True, то можно сделать вывод, что для текущего соединения задана опция IMPLICIT TRANSACTIONS. Значения двоичньпс флажков приведены в табл. A.L Таблица А.1. Значения двоичных флажков системной переменной ©©options Двоичный Опция SET Описание флажок 1 DISABLE DEF CNST CHK Промежуточная или отложенная проверка ограничений 2 IMPLICIT TRANSACTI0NS Нвявный зэпуск транзэкции при выполнении оператора Двоичный флажок Опция SET Описание 16 32 256 512 1024 2048 CXmSOR closeon commit ansi warnings ansi padding ansi nulls arithabort arithignore quoted identifier nocount ansi null dflt on ansi null dflt off 4096 8192 concat null yields n ull numeric roundabort Закрытие курсора после выполнения операции commit Формирование предупреждающих сообщений об усечении таблиц и обнаружении NULL-значений при выполнении агрегирующих функций Дополнение переменных фиксированной длины Применяемый способ трактовки NULL-значений во время выполнения операторов сравнения на равенство Завершение запроса при обнаружении ошибки переполнения или деления на нуль во время выполнения запроса Возврат NULL-значений при возникновении ошибки переполнения или деления на нуль во время выполнения запроса Проведение различий между одинарными и двойными кавычками при вычислении любого выражения Отмена вывода сообщения row (s) affected в конце возвращаемых данных любого оператора Применение в сеансе средств обеспечения совместимости со стандартом ANSI в части поддержки NULL-значений. Столбцы, создаваемые в составе новых таблиц или добавляемые в существующие таблицы без явного указания параметров поддержки NULL-значений, определяются как допускающие использование NULL-значений. Эта опция является взаимоисключающей с опцией ansi null dflt off Отказ от применения в сеансе средств обеспечения совместимости со стандартом ANSI в части поддержки NULL-значений. Столбцы, создаваемые в составе новых таблиц или добавляемые в существующие таблицы без явного указания параметров поддержки NULL-значений, определяются как не допускающие использование NULL-значений. Эта опция является взаимоисключающей с опцией ansi null dflt on Возврат NULL-значений при выполнении операций конкатенации NULL-значений со строковыми значениями Выработка сообщения об ошибке при обнаружении потери точности в выражении Системные переменные @@pack received и @@pack sent Системные переменные @@PACK RECEIVED и @@PACK SENT позволяют получить данные о количестве входных и выходных пакетов, переданных и полученных из сети сервером SQL Server после его последнего запуска. Как правило, значения этих переменных используются в инструментальных средствах устранения нарушений в работе сети. Системная переменная ©©packeterrors Системная переменная @@packet ERRORS содержит информацию о количестве ошибок сетевых пакетов, которые обнаружены в соединениях с СУБД SQL Server со времени последнего запуска SQL Server. Как правило, значение этой переменной используется в инструментальных средствах устранения нарушений в работе сети. Системная переменная ©©procid Системная переменная @@procid содержит значение идентификатора выполняющейся в настоящее время хранимой процедуры. Как правило, значение этой переменной используется в инструментальных средствах устранения нарушений в работе процесса, в котором используется большое количество ресурсов. Главным образом предназначена для использования администратором базы данных. Системная переменная ©©remserver Системная переменная @@remSERVer содержит информацию о сервере (в том виде, в каком она обнаруживается во время регистрации учетной записи), относящуюся к серверу, с которого вызвана хранимая процедура. Системная переменная @@remSERVER используется только в хранимых процедурах. Она является удобным средством такой организации работы, в которой требуется, чтобы хранимая процедура действовала по-разному, в зависимости от того, с какого удаленного сервера она вызвана (при этом часто учитывается географическое местонахождение). Системная переменная ©©rowcount Системная переменная @@rowcount содержит информацию о количестве строк, затронутых последним оператором. Эта системная переменная относится к числу наиболее широко используемых. В частности, она обычно применяется для проверки на наличие ошибок, отличных от ошибок этапа прогона. Под этим подразумеваются такие ошибки, которые являются следствием использования в программе неправильных алгоритмов, но сама СУБД SQL Server не обнаруживает при этом никаких нарушений в работе. В качестве примера можно привести такую ситуацию, в которой осуществляется обновление данных с учетом некоторого условия, но обнаруживается, что в этом обновлении затрагивается нулевое количество строк. Вполне очевидно, что если в клиентской программе вызван на вьшолнение оператор модификации определенных строк, то предполагается прежде всего наличие строк, соответствующих заданному критерию. Если же количество затронутых строк равно нулю, то это может свидетельствовать о том, что в программе допущена какая-то ошибка. С другой стороны, системная переменная @@rowcount возвращает также значение О при выполнении любого оператора, в котором не предусматривается обработка строк.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |