xp_logevent (Transact-SQL)xp_logevent (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server (начиная с версии 2008) нетБаза данных SQL Azure нетХранилище данных SQL AzureнетParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Заносит в журнал определяемых пользователем сообщение SQL ServerSQL Server файл журнала и в средстве просмотра событий Windows.Logs a user-defined message in the SQL ServerSQL Server log file and in the Windows Event Viewer. xp_logevent может использоваться для отправки предупреждения без посылки сообщения клиенту.xp_logevent can be used to send an alert without sending a message to the client.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax


xp_logevent { error_number , 'message' } [ , 'severity' ]  

АргументыArguments

error_numbererror_number
Номер пользовательской ошибки, больший 50 000.Is a user-defined error number larger than 50,000. Максимальное значение равно 2 147 483 647 (2^31 - 1).The maximum value is 2147483647 (2^31 - 1).

" сообщение "' message '
Символьная строка, которая может содержать не более 2048 символов.Is a character string with a maximum of 2048 characters.

" серьезность "' severity '
Является одним из трех символьных строк: ИНФОРМАЦИОННОЕ, предупреждение или ошибка.Is one of three character strings: INFORMATIONAL, WARNING, or ERROR. уровень серьезности является необязательным и по умолчанию — INFORMATIONAL.severity is optional, with a default of INFORMATIONAL.

Значения кода возвратаReturn Code Values

0 (успешное завершение) или 1 (неуспешное завершение)0 (success) or 1 (failure)

Результирующие наборыResult Sets

Для приведенного примера кода процедура xp_logevent возвращает следующую строку ошибки:xp_logevent returns the following error message for the included code example:

The command(s) completed successfully.

ПримечанияRemarks

При отправке сообщений из Transact-SQLTransact-SQL процедур, триггеров, пакетов и т. д., использовать инструкцию RAISERROR вместо процедуры xp_logevent.When you send messages from Transact-SQLTransact-SQL procedures, triggers, batches, and so on, use the RAISERROR statement instead of xp_logevent. xp_logevent не вызывает обработчик сообщений клиента и не задает@ERROR.xp_logevent does not call a message handler of a client or set @@ERROR. Чтобы записывать сообщения в средство просмотра событий Windows и в файл журнала ошибок SQL ServerSQL Server внутри экземпляра SQL ServerSQL Server, следует выполнить инструкцию RAISERROR.To write messages to the Windows Event Viewer and to the SQL ServerSQL Server error log file within an instance of SQL ServerSQL Server, execute the RAISERROR statement.

РазрешенияPermissions

Необходимо членство в предопределенной роли базы данных db_owner в базе данных master или членство в предопределенной роли сервера sysadmin.Requires membership in the db_owner fixed database role in the master database, or membership in the sysadmin fixed server role.

ПримерыExamples

Следующий пример записывает в журнал сообщение с переменными, переданными в сообщение, в средство просмотра событий Windows.The following example logs the message, with variables passed to the message in the Windows Event Viewer.

DECLARE @@TABNAME varchar(30), @@USERNAME varchar(30), @@MESSAGE varchar(255);  
SET @@TABNAME = 'customers';  
SET @@USERNAME = USER_NAME();  
SELECT @@MESSAGE = 'The table ' + @@TABNAME + ' is not owned by the user   
   ' + @@USERNAME + '.';  

USE master;  
EXEC xp_logevent 60000, @@MESSAGE, informational;  

См. такжеSee Also

PRINT (Transact-SQL) PRINT (Transact-SQL)
RAISERROR (Transact-SQL) RAISERROR (Transact-SQL)
Системные хранимые процедуры (Transact-SQL) System Stored Procedures (Transact-SQL)
Общие расширенные хранимые процедуры (Transact-SQL)General Extended Stored Procedures (Transact-SQL)