Программирование >>  Программирование баз данных 

1 ... 308 309 310 [ 311 ] 312 313 314 ... 346


Следует также отметить, что фактическое количество разрешенных к применению пользовательских соединений зависит от используемой версии 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 возвращает также значение О при выполнении любого оператора, в котором не предусматривается обработка строк.



1 ... 308 309 310 [ 311 ] 312 313 314 ... 346

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика