|
Программирование >> Программирование баз данных
Системная переменная @@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.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |