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

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


Системная переменная @@servername

Системная переменная @@SERVERNAME содержит имя локального сервера, с которого был запущен на выполнение данный сценарий.

Если на компьютере инсталлировано несколько экземпляров СУБД SQL Server (в качестве примера такой организации работы можно назвать службу Web-хостинга, в которой для каждого клиента используется отдельная инсталляция SQL Server), то системная переменная @@SERVERNAME возвращает информацию, касающуюся имени локального сервера, приведенную в табл. А.2, если имя локального сервера не было изменено со времени инсталляции.

Таблица А.2. Информация об имени локального сервера, которая может быть получена с помощью системной переменной @@servername

Экземпляр Информация о сервере

Экземпляр, применяемый по умолчанию <servername>

Именованный экземпляр <servername\instancename>

Виртуальный сервер - экземпляр, применяемый <virtualservername> по умолчанию

Виртуальный сервер - именованный экземпляр <virtualservername\instancename>

Системная переменная @@servicename

Системная переменная @@SERVICENAME содержит имя ключа реестра, под которым эксплуатируется СУБД SQL Server.

Эта системная переменная содержит определенные данные только в операционной системе Windovs 2000/2003/ХР и (в любой из этих операционных систем) должна всегда иметь значение MSSQLService, если это значение не было модифицировано в системном реестре преднамеренно.

Системная переменная @@spid

Системная переменная ®@SPID содержит идентификатор серверного процесса (Server Process ID - SPID) теьсущего пользовательского процесса.

Эта системная переменная содержит такой же идентификатор процесса, который обнаруживается после запуска хранимой процедуры sp who. Один из способов применения этой системной переменной состоит в том, что она позволяет узнать значение SPID текущего соединения, которое может использоваться администратором базы данных для контроля над выполнением текущей задачи и, в случае необходимости, - для ее завершения.

Системная переменная @@textsize

Системная переменная @@TEXTSIZE содержит текущее значение опции TEXTSIZE, установленной с помощью оператора SET, которая определяет максимальную длину в байтах, возвращаемую оператором SELECT при выборке текстовых данных или данных изображения.

По умолчанию значение этой переменной составляет 4096 байтов (4 Кбайт). Это значение можно изменить с использованием оператора SET TEXTSIZE.



Системная переменная @@timeticks

Системная переменная @@timeticks содержит информацию о том, чему равна продолжительность тактового интервала в микросекундах. Соответствующее значение зависит от аппаратного обеспечения компьютера. Вообще говоря, системная переменная @@timeticks также относится к категории программных средств, для которых трудно найти рациональное применение.

Системная переменная @®totalerrors

Системная переменная @@tOTAL ERRORS содержит информацию о количестве ошибок чтения-записи на диске, обнаруженных в СУБД SQL Server со времени последнего запуска.

Не следует путать ошибки чтения-записи с ошибками этапа прогона или считать, что эта переменная имеет какое-то отношение к переменной @@ERROR. Она касается исключительно тех проблем, которые возникают во время вьшолнения физических операций ввода-вывода. Системную переменную @@total ERRORS также можно считать относящейся к категории программных средств, для которых трудно найти рациональное применение. Главным образом ее можно было бы использовать в системных диагностических сценариях, но для этой цели, по-видимому, больше подходят средства программы Performance Monitor.

Системные переменные @@total read и @@total write

Системные переменные @@total read и @@total WRITE позволяют определить общее количество операций чтения-записи на диске, обнаруженных в СУБД SQL Server со времени ее последнего запуска.

Имена этих переменных немного не соответствуют их назначению, поскольку они не содержат информацию об операциях чтения-записи в кэше, а предоставляют только сведения о физических операциях ввода-вывода.

Системная переменная @@trancount

Системная переменная @@tranCOUNT содержит информацию о количестве активных транзакций (по существу, об уровне вложенности транзакций) для текущего соединения.

Эта системная переменная становится очень важной, если в приложении применяется транзакционная обработка. Как правило, использование вложенных транзакций не рекомендуется, но в некоторых обстоятельствах без них трудно обойтись. В таком случае важно иметь информацию о том, на каком уровне выполняется текущая транзакция (например, если используется алгоритм, предусматривающий запуск транзакции только при том условии, что в настоящее время не выполняется какая-то другая транзакция).

Если в данный момент не выполняется какая-либо транзакция, то значение @@tranC0UNT равно 0. В связи с этим рассмотрим следующий краткий пример:

SELECT @@TRANCOUNT As TransactionNestLevel -- В данный момент уровень

-- вложенности транзакции должен быть равен нулю

BEGIN TRAN

SELECT ©©TRANCOUNT As TransactionNestLevel -- В данный момент уровень



-- вложенности транзакции должен быть равен единице

BEGIN TRAN

SELECT ®®TRANCOUNT As TransactionNestLevel -- В данный момент уровень -- вложенности транзакции должен быть равен двум

COMMIT TRAN

SELECT ©OTRANCGUNT As TransactionNestLevel -- В данный момент уровень

-- вложенности транзакции должен снова возвратиться к единице

ROLLBACK TRAN

SELECT ®®TRANCOUNT As TransactionNestLevel -- В данный момент уровень

-- вложенности транзакции должен снова возвратиться к нулю

Обратите внимание на то, что в данном примере значение @@tranC0UNT также достигло бы нуля в самом конце, если бы в последней транзакции был выполнен оператор commit.

Системная переменная ©©version

Системная переменная @@version позволяет получить информацию о текущей версии SQL Server, а также о типе процессора и архитектуре операционной системы. Пример применения системной переменной ©©version приведен ниже.

SELECT ©OVERSION

Выполнение этого кода приводит к получению такого результата:

Microsoft SQL Server 2005 - 9.00.1116 (Intel Х8б) Apr 9 2005 20:56:37

Copyright { с ) 1988-2004 Microsoft Corporation

Beta Edition on Windows NT 5.1 (Build 2600: Seirvice Pack 2)

(1 row(s) affected)

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

Вместо указанной системной переменной рекомендуется использовать системную хранимую процедуру xp msver; эта процедура возвращает информацию в таком виде, что задача выборки из полученных результатов какой-то конкретной информации становится проще.

Агрегирующие функции

Агрегирующие функции применяются к наборам строк, а не к отдельным строкам. Информация, содержащаяся в многочисленных строках, обрабатывается каким-то определенным способом, а затем оформляется в виде результирующих данных, состоящих из одной строки. Агрегирующие функции часто используются вместе с конструкцией GROUP BY.

Список агрегирующих функций приведен ниже.

AVG.

CHECKSUM.

CHECKSUM AGG.

COUNT.



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

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