SQL SERVER ERROR MESSAGES The Events and Errors Message Center, located at this Microsoft Web site, is the primary source of information on error messages for SQL Server 2005 and improves the customer experience when searching for information on SQL Server error messages, as well as other Microsoft products. The new Web site enables customers to perform full-text searches and filter results based on product, version, source, and numeric or symbolic identifier. Additionally, the new interface provides support across multiple languages. The Web site will be continually updated with new troubleshooting information on frequently encountered errors. Future enhancements to the Events and Errors Message Center will make troubleshooting content available in downloadable form, giving you access to it from a computer that is not connected to the Internet. Getting Assistance From Others If you have not found the information you are looking for in the product documentation or on the Web, you can either ask a question in the SQL Server community or request help from Microsoft support. SQL Server Community Has links to newsgroups and forums monitored by the SQL Server community. It also lists community information sources, such as blogs and Web sites. The SQL Server community is very helpful in answering questions, although there is no guarantee of an answer. SQL Server Developer Center Community This site focuses on the newsgroups, forums, and other community resources that are useful to SQL Server developers. Microsoft Help and Support You can use this Web site to open a case with a Microsoft support professional. Database Engine Events and Errors This topic provides information about errors and events for the SQL Server 2005 Database Engine. Understanding Database Engine Errors Describes the format of Database Engine error messages and explains how to view error messages and return error messages to applications. Cause and Resolution of Database Engine Errors Provides an explanation of the error message, possible causes, and any actions you can take to correct the problem. Understanding Database Engine Errors Errors raised by the Microsoft SQL Server Database Engine have the attributes described in the following table. Attribute Description Error number Each error message has a unique error number. Error message string The error message contains diagnostic information about the cause of the error. Many error messages have substitution variables in which information, such as the name of the object generating the error, is inserted. Severity 1 The severity indicates how serious the error is. Errors that have a low severity, such as 1 or 2, are information messages or low-level warnings. Errors that have a high severity indicate problems that should be addressed as soon as possible. For more information about severities, see Database Engine Error Severities. State Some error messages can be raised at multiple points in the code for the Database Engine. For example, an 1105 error can be raised for several different conditions. Each specific condition that raises an error assigns a unique state code. When you are viewing databases that contain information about known issues, such as the Microsoft Knowledge Base, you can use the state number to determine whether the recorded issue is the same as the error you have encountered. For example, if a Knowledge Base Article describes an 1105 error that has a state of 2 and the 1105 error message you received had a state of 3, the error probably has a different cause than the one reported in the article. A Microsoft support engineer can also use the state code from an error to find the location in the source code where that error code is being raised. This information might provide additional ideas on how to diagnose the problem. Procedure name Is the name of the stored procedure or trigger in which the error has occurred. Line number Indicates which statement in a batch, stored procedure, trigger, or function generated the error. All system and user-defined error messages in an instance of the Database Engine are contained in the sys.messages catalog view. You can use the RAISERROR statement to return user-defined errors to an application. All database APIs, such as the Microsoft .NET Framework SQLClient namespace, ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC), report the basic error attributes. This information includes the error number and message string. However, not all the APIs report all the other error attributes. For more information, see Handling Errors and Messages in Applications. Information about an error that occurs in the scope of the TRY block of a TRY…CATCH construct can be obtained in Transact-SQL code by using functions such as ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY, and ERROR_STATE in the scope of the associated CATCH block. For more information, see Retrieving Error Information in Transact-SQL and Using TRY...CATCH in Transact-SQL. Examples The following example queries the sys.messages catalog view to return a list of all system and user-defined error messages in the Database Engine that have English text (1033). SELECT message_id, language_id, severity, is_event_logged, text FROM sys.messages 2 WHERE language_id = 1033; Database Engine Error Severities When an error is raised by the SQL Server Database Engine, the severity of the error indicates the type of problem encountered by SQL Server. Levels of Severity The following table lists and describes the severity levels of the errors raised by the SQL Server Database Engine. Severity level Description 0-9 Informational messages that return status information or report errors that are not severe. The Database Engine does not raise system errors with severities of 0 through 9. 10 Informational messages that return status information or report errors that are not severe. For compatibility reasons, the Database Engine converts severity 10 to severity 0 before returning the error information to the calling application. 11-16 Indicate errors that can be corrected by the user. 11 Indicates that the given object or entity does not exist. 12 A special severity for queries that do not use locking because of special query hints. In some cases, read operations performed by these statements could result in inconsistent data, since locks are not taken to guarantee consistency. 13 Indicates transaction deadlock errors. 14 Indicates security-related errors, such as permission denied. 15 Indicates syntax errors in the Transact-SQL command. 16 Indicates general errors that can be corrected by the user. 17-19 Indicate software errors that cannot be corrected by the user. Inform your system administrator of the problem. 17 Indicates that the statement caused SQL Server to run out of resources (such as memory, locks, or disk space for the database) or to exceed some limit set by the system administrator. 18 Indicates a problem in the Database Engine software, but the statement completes execution, and the connection to the instance of the Database Engine is maintained. The system administrator should be informed every time a message with a severity level of 18 occurs. 19 Indicates that a nonconfigurable Database Engine limit has been exceeded and the current batch process has been terminated. Error messages with a severity level of 19 or higher 3 stop the execution of the current batch. Severity level 19 errors are rare and must be corrected by the system administrator or your primary support provider. Contact your system administrator when a message with a severity level 19 is raised. Error messages with a severity level from 19 through 25 are written to the error log. 20-25 Indicate system problems and are fatal errors, which means that the Database Engine task that is executing a statement or batch is no longer running. The task records information about what occurred and then terminates. In most cases, the application connection to the instance of the Database Engine may also terminate. If this happens, depending on the problem, the application might not be able to reconnect. Error messages in this range can affect all of the processes accessing data in the same database and may indicate that a database or object is damaged. Error messages with a severity level from 19 through 25 are written to the error log. 20 Indicates that a statement has encountered a problem. Because the problem has affected only the current task, it is unlikely that the database itself has been damaged. 21 Indicates that a problem has been encountered that affects all tasks in the current database, but it is unlikely that the database itself has been damaged. 22 Indicates that the table or index specified in the message has been damaged by a software or hardware problem. Severity level 22 errors occur rarely. If one occurs, run DBCC CHECKDB to determine whether other objects in the database are also damaged. The problem might be in the buffer cache only and not on the disk itself. If so, restarting the instance of the Database Engine corrects the problem. To continue working, you must reconnect to the instance of the Database Engine; otherwise, use DBCC to repair the problem. In some cases, you may have to restore the database. If restarting the instance of the Database Engine does not correct the problem, then the problem is on the disk. Sometimes destroying the object specified in the error message can solve the problem. For example, if the message reports that the instance of the Database Engine has found a row with a length of 0 in a nonclustered index, delete the index and rebuild it. 23 Indicates that the integrity of the entire database is in question because of a hardware or software problem. Severity level 23 errors occur rarely. If one occurs, run DBCC CHECKDB to determine the extent of the damage. The problem might be in the cache only and not on the disk itself. If so, restarting the instance of the Database Engine corrects the problem. To continue working, you must reconnect to the instance of the Database Engine; otherwise, use DBCC to repair the problem. In some cases, you may have to restore the database. 24 Indicates a media failure. The system administrator may have to restore the database. You may also have to call your hardware vendor. 4 SQL accessible – доступный although – хотя application – приложение, применение assign – определять, назначать attempt – попытка authentication batch – группа, пакет cause – причина, вызывать CHEKDB – проверка базы данных commit – совершать consistency – согласованность, связанность contain – содержать convert – преобразовать correct – правильный, исправлять could – мог (прош. от can) current – текущий damage – повреждение DBCC (database consistency checker) – модуль контроля непротиворечивости данных deadlock default – по умолчанию denied – запрещен deny – отрицать, отказывать describe – описывать description – описание determine – определять disabled downloadable – загружаемый elapse encounter – сталкиваться engine – двигатель, движок entity establish - устанавливать establish – устанавливать event – событие example – пример exceed – превышать execution – исполнение expire – истекать (о сроке) explanation – объяснение failure – неудача, сбой fatal – неизбежный following – следующий frequently – часто hint-подсказка, намек however – однако inconsistent – несогласованный, несвязанный indicate – указывать instance instance – мгновение; for ~ - например, integrity – целостность invalid issue – выпуск, издание length – длина maintain – поддерживать (в рабочем состоянии) message – сообщение mismatch movement – движение occur – случаться, происходить occur – случаться, происходить permission – разрешение pipe – труба possible – возможный primary – первичный probably – вероятно query – вопрос, запрос question – вопрос raise – поднимать rarely – редко reason – причина refer – относиться, ссылаться refuse – отказывать relate – относиться, связываться related – связанный remote – удаленный request – запрос require – требовать resolve respond – отвечать resubmit – переподчинить retrieve search – поиск severe – суровый, строгий severity – серьезность ошибки since – с тех пор, как; так как source – источник state – состояние statement – утверждение store – сохранять substitution – подстановка, замена successfully – успешно such – такой sure – уверенный surface – поверхность take – взять target – цель transaction – сделка, транзакция, перевод trigger – триггер, защелка try – пытаться useful – полезный vendor – поставщик, продавец 5 User-Defined Error Message Severity sp_addmessage can be used to add user-defined error messages with severities from 1 through 25 to the sys.messages catalog view. These user-defined error messages can be used by RAISERROR. For more information, see sp_addmessage (Transact-SQL). RAISERROR can be used to generate user-defined error messages with severities from 1 through 25. RAISERROR can reference a user-defined error message stored in the sys.messages catalog view or build a message dynamically. When using the user-defined error message in sys.messages while generating an error, the severity specified by RAISERROR overrides the severity specified in sys.messages. For more information, see RAISERROR (Transact-SQL). Error Severity and TRY…CATCH A TRY…CATCH construct catches all execution errors with severity greater than 10 that do not terminate the database connection. Errors with severity from 0 through 10 are informational messages and do not cause execution to jump from the CATCH block of a TRY…CATCH construct. Errors that terminate the database connection, usually with severity from 20 through 25, are not handled by the CATCH block because execution is aborted when the connection terminates. For more information, see TRY...CATCH (Transact-SQL). Retrieving Error Severity The ERROR_SEVERITY system function can be used to retrieve the severity of the error that caused the CATCH block of a TRY…CATCH construct to be run. ERROR_SEVERITY returns NULL if called outside the scope of a CATCH block. For more information, see ERROR_SEVERITY (Transact-SQL). Cause and Resolution of Database Engine Errors This topic contains cause and resolution information for a number of errors related to the Database Engine. Error 18456 Severity 1 SQL Server 2005 Event 18456 Severity 1 State Description 2 & 5 Invalid UserID 6 Attempt to use a Windows login name with SQL Authentication 7 Login disabled and password mismatch 8 Password mismatch 9 Invalid password 11 & 12 Valid login but server access failure 13 SQL Server service paused 16 User does not have permission to target database or target database not accessible 18 Change password required MSSQLSERVER_-1 Message Text An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 28 - Server doesn't support requested protocol) (Microsoft SQL Server, Error: -1) Explanation The SQL Server client cannot connect to the server. This error could be caused by one of the following reasons: 6 The firewall on the server has refused the connection. A specified SQL Server instance name is not valid. The SQL Server Browser service (sqlbrowser) is not started. User Action To resolve this error, try one of the following actions: Make sure that you have configured the firewall on the server instance of SQL Server to open the SQL Server Browser port. Make sure that the SQL Server Browser service is started on the server. Check the spelling of the SQL Server instance name that is specified in the connection string. Use the SQL Server Surface Area Configuration tool to enable SQL Server to accept remote connections. For more information about the SQL Server Surface Area Configuration Tool, see Surface Area Configuration for Services and Connections. MSSQLSERVER_-2 Message Text Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. (Microsoft SQL Server, Error: -2) Explanation The SQL Server client cannot connect to the server. This error could occur because the firewall on the server has refused the connection. User Action Make sure that you have configured the firewall on the server instance of SQL Server to accept connections. MSSQLSERVER_2 Message Text An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) (.Net SqlClient Data Provider) Explanation SQL Server did not respond to the client request because the server is probably not started. User Action Make sure that the server is started. MSSQLSERVER_53 Message Text An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) (.Net SqlClient Data Provider) Explanation The SQL Server client cannot connect to the server. This error could occur because either the client cannot resolve the name of the server or the name of the server is incorrect. User Action Make sure that you have entered the correct server name on the client, and that you can resolve the name of the server from the client. To check TCP/IP name resolution, you can use the ping command in the Windows operating system. MSSQLSERVER_107 Message Text The column prefix '%.*ls' does not match with a table name or alias name used in the query. Explanation The select list of the query contains an asterisk (*) that is incorrectly qualified with a column prefix. This error can be returned under the following conditions: The column prefix does not correspond to any table or alias name used in the query. For example, the following statement uses an alias name (T1) as a column prefix, but the alias is not defined in the FROM clause. SELECT T1.* FROM dbo.ErrorLog; 7 A table name is specified as a column prefix when an alias name for the table is supplied in the FROM clause. For example, the following statement uses the table name ErrorLog as the column prefix; however, the table has an alias (T1) defined in the FROM clause. SELECT ErrorLog.* FROM dbo.ErrorLog AS T1; If an alias has been provided for a table name in the FROM clause, you can only use the alias to prefix columns from the table. User Action Match the column prefixes against the table names or alias names specified in the FROM clause of the query. For example, the statements above can be corrected as follows: SELECT T1.* FROM dbo.ErrorLog AS T1; or SELECT ErrorLog.* FROM dbo.ErrorLog; MSSQLSERVER_125 New: 12 December 2006 Details Product Name SQL Server Product Version 9.0 Product Build Number 9.00.1281.60 Event ID 125 Event Source MSSQLSERVER Component SQLEngine Symbolic Name Message Text Case expressions may only be nested to level %d. Explanation SQL Server allows for only 10 levels of nesting in CASE expressions. User Action Reduce the level of CASE statements to 10 or less. MSSQLSERVER_137 Message Text Must declare the scalar variable "%.*ls". Explanation This error occurs when a variable is used in a SQL script without first declaring the variable. The following example returns error 137 for both the SET and SELECT statements because @mycol is not declared. SET @mycol = 'ContactName'; SELECT @mycol; One of the more complicated causes of this error includes the use of a variable that is declared outside the EXECUTE statement. For example, the variable @mycol specified in the SELECT statement is local to the SELECT statement, thus it is outside the EXECUTE statement. USE AdventureWorks; GO DECLARE @mycol nvarchar(20); SET @mycol = 'Name'; 8 EXECUTE ('SELECT @mycol FROM Production.Product;'); User Action Verify that any variables used in a SQL script are declared before being used elsewhere in the script. Rewrite the script so that it does not reference variables in the EXECUTE statement that are declared outside of it. For example: USE AdventureWorks; GO DECLARE @mycol nvarchar(20) ; SET @mycol = 'Name'; EXECUTE ('SELECT ' + @mycol + ' FROM Production.Product';) ; MSSQLSERVER_207 Message Text Invalid column name '%.*ls'. Explanation The specified column was not found in any table specified in the FROM clause of the query. User Action Change the column name to a column name present in one of the tables referenced in the query. Verify the collation of the database. When a database uses a case-sensitive collation, the column names specified in the Transact-SQL statement must match the case of the columns in the database. For example, when a column is specified as LastName and the database uses a case sensitive collation, queries that refer to the column as Lastname or lastname will cause error 207 to return because the column name does not match. You can verify the database collation by running the following statement. SELECT collation_name FROM sys.databases WHERE name = 'database_name'; The abbreviation CS in the collation name indicates the collation is case sensitive. For example, Latin1_General_CS_AS is a case sensitive and accent sensitive collation. CI indicates the collation is caseinsensitive. MSSQLSERVER_208 Message Text Invalid object name '%.*ls'. Explanation The specified object cannot be found. Possible Causes This error can be caused by one of the following problems: The object is not specified correctly. The object does not exist in the current database or in the specified database. The object exists, but could not be exposed to the user. For example, the user might not have permissions on the object or the object is created within an EXECUTE statement but accessed outside the scope of the EXECUTE statement. 9 User Action Verify the following information and correct the statement as appropriate: The object name is spelled correctly. The current database context is correct. If a database name for the object is not specified, the object must exist in the current database. For more information about setting the database context, see USE (Transact-SQL). The object exists in the system tables. To verify whether a table or other schema-scoped object exists, query the sys.objects catalog view. If the object is not in the system tables, the object has been deleted, or the user does not have permissions to view the object metadata. For more information about permissions to view object metadata, see Metadata Visibility Configuration. The object is contained in the default schema of the user. If it is not, the object must be specified using the twopart format schema_name.object_name. For more information about schemas, see User-Schema Separation. Note that scalar-valued functions must always be invoked by using at least a two-part name. The case sensitivity of the database collation. When a database uses a case-sensitive collation, the object name must match the case of the object in the database. For example, when an object is specified as MyTable in a database with a case sensitive collation, queries that refer to the object as mytable or Mytable will cause error 208 to return because the object names do not match. You can verify the database collation by running the following statement. SELECT collation_name FROM sys.databases WHERE name = 'database_name'; The abbreviation CS in the collation name indicates the collation is case sensitive. For example, Latin1_General_CS_AS is a case sensitive, accent sensitive collation. CI indicates a case insensitive collation. The user has permission to access the object. To verify the permissions the user has on the object, use the Has_Perms_By_Name system function. MSSQLSERVER_233 Message Text A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.) (Microsoft SQL Server, Error: 233) Explanation The SQL Server client cannot connect to the server. This error could occur because the server is not configured to accept remote connections. User Action Use the SQL Server Surface Area Configuration tool to allow SQL Server to accept remote connections. For more information about the SQL Server Surface Area Configuration Tool, see Surface Area Configuration for Services and Connections. MSSQLSERVER_601 Message Text Could not continue scan with NOLOCK due to data movement. Explanation The SQL Server Database Engine cannot continue executing the query because it is trying to read data that was updated or deleted by another transaction. The query is using either the NOLOCK locking hint or the READ UNCOMMITTED transaction isolation level. Typically, access to data that is being changed by another transaction is denied because of locks put on the data. However, the NOLOCK locking hint and READ UNCOMMITTED transaction isolation level let a query read 10 data that is locked by another transaction. This is referred to as a dirty read because you can read values that have not yet been committed and that are subject to change. User Action This error cancels the query. Either resubmit the query or remove the NOLOCK locking hint. MSSQLSERVER_605 Message Text Attempt to fetch logical page %S_PGID in database %d failed. It belongs to allocation unit %I64d not to %I64d. Explanation This error generally signifies page or allocation corruption in the specified database. SQL Server detects corruption when reading pages belonging to a table either by following the page linkages or by using the Index Allocation Map (IAM). All pages allocated to a table must belong to one of the allocation units associated with the table. If the allocation unit ID contained in the page header does not match an allocation unit ID associated with the table, this exception is raised. The first allocation unit ID listed in the error message is the ID present in the page header, the second allocation unit value is the ID associated with the table. Data Corruption Errors A severity level of 21 indicates potential data corruption. Possible causes are a damaged page chain, a corrupt IAM, or an invalid entry in the sys.objects catalog view for that object. These errors are often caused by hardware or disk device driver failure. Transient Errors A severity level of 12 indicates a potential transient error; that is, it occurs in the cache and does not indicate damage to data on disk. Transient 605 errors can be caused by the following conditions: The operating system prematurely notifies SQL Server that an I/O operation has completed; the error message is displayed even though no actual data corruption exists. Running a query with the Optimizer hint NOLOCK or setting the transaction isolation level to READ UNCOMMITTED. When a query that is using NOLOCK or READ UNCOMMITTED tries to read data that is being moved or changed by another user, a 605 error occurs. To verify that it is a transient 605 error, rerun the query later. For more information, see this KB article. In general, if the error occurs during data access but subsequent DBCC CHECKDB operations complete without error, the 605 error was probably transient. User Action Identify the tables associated with the allocation units specified in the message by running the following query. Replace <allocation_unit_id> with the allocation units specified in the error message. USE <database_name>; GO SELECT au.allocation_unit_id, OBJECT_NAME(p.object_id) AS table_name, fg.name AS filegroup_name, au.type_desc AS allocation_type, au.data_pages, partition_number FROM sys.allocation_units AS au JOIN sys.partitions AS p ON au.container_id = p.partition_id JOIN sys.filegroups AS fg ON fg.data_space_id = au.data_space_id WHERE au.allocation_unit_id = <allocation_unit_id> OR au.allocation_unit_id = <allocation_unit_id> ORDER BY au.allocation_unit_id; GO Execute DBCC CHECKTABLE without a REPAIR clause on the table associated with the second allocation unit ID specified in the error message. Execute DBCC CHECKDB without a REPAIR clause as soon as possible to determine the full extent of the corruption in the entire database. 11 Check the error log for other errors that often accompany a 605 error and examine the Windows Event Log for any system or hardware related issues. Fix any hardware-related problems that are contained in the logs. If the 605 error is not transient, the problem is severe and must be corrected by performing one of the following tasks: If the problem is not hardware related and a known clean backup is available, restore the database from the backup. You can leverage the page restore backup feature to restore just the damaged pages. Run DBCC CHECKDB with the REPAIR clause recommended by the DBCC CHECKDB operation performed in step 2 to repair the corruption.Caution: If you are not sure what effect DBCC CHECKDB with a REPAIR clause has on your data, contact your primary support provider before running this statement. If running DBCC CHECKDB with one of the REPAIR clauses does not correct the problem, contact your primary support provider. Have the output from DBCC CHECKDB available for review. MSSQLSERVER_701 Message Text There is insufficient system memory to run this query. Explanation SQL Server has failed to allocate sufficient memory to run the query. This can be caused by a variety of reasons including operating system settings, physical memory availability, or memory limits on the current workload. In most cases, the transaction that failed is not the cause of this error. Diagnostic queries, such as DBCC statements, may fail because server the does not have sufficient memory. User Action The following list outlines general steps that will help in troubleshooting memory errors: Verify whether other applications or services are consuming memory on this server. Reconfigure less critical applications or services to consume less memory. Start collecting performance monitor counters for SQL Server: Buffer Manager, SQL Server: Memory Manager. Check the following SQL Server memory configuration parameters: max server memory min server memory awe enabled min memory per query Notice unusual settings. Correct them as necessary. Account for increased memory requirements for SQL Server 2005. Default settings are listed in "Setting Server Configuration Options" in SQL Server Books Online. If you are using Address Windowing Extensions (AWE), verify that the Windows security setting Lock pages in memory' is enabled. Observe DBCC MEMORYSTATUS output and the way it changes when you see these error messages. Check the workload (for example, number of concurrent sessions, currently executing queries). The following actions may make more memory available to SQL Server: If applications besides SQL Server are consuming resources, try stopping running these applications or consider running them on a separate server. This will remove external memory pressure. If you have configured max server memory, increase its setting. Run the following DBCC commands to free several SQL Server memory caches. DBCC FREESYSTEMCACHE DBCC FREESESSIONCACHE DBCC FREEPROCCACHE If the problem continues, you will need to investigate further and possibly reduce workload. 12 MSSQLSERVER_802 Message Text There is insufficient memory available in the buffer pool. Explanation This is caused when the buffer pool is full and the buffer pool can not grow any larger. User Action The following list outlines general steps that will help in troubleshooting memory errors: Verify whether other applications or services are consuming memory on this server. Reconfigure less critical applications or services to consume less memory. Start collecting performance monitor counters for SQL Server: Buffer Manager, SQL Server: Memory Manager. Check the following SQL Server memory configuration parameters: max server memory min server memory awe enabled min memory per query Notice any unusual settings and correct them as necessary. Account for increased memory requirements for SQL Server 2005. Default settings are listed in "Setting Server Configuration Options" in SQL Server Books Online. If you are using Address Windowing Extensions (AWE), verify that the Windows security setting Lock pages in memory is enabled. Observe DBCC MEMORYSTATUS output and the way it changes when you see these error messages. Check the workload (number of concurrent sessions, currently executing queries). The following actions may make more memory available to SQL Server: If applications besides SQL Server are consuming resources, try stopping these applications or running them on a separate server. If you have configured max server memory, increase the setting. Run the following DBCC commands to free several SQL Server memory caches. DBCC FREESYSTEMCACHE DBCC FREESESSIONCACHE DBCC FREEPROCCACHE If the problem continues, you will need to investigate further and possibly reduce workload. MSSQLSERVER_823 Message Text The operating system returned error %ls to SQL Server during a %S_MSG at offset %#016I64x in file '%ls'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe system-level error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online. Explanation A Windows read or write request has failed. The error code that is returned by Windows and the corresponding text are inserted into the message. In the read case, SQL Server will have already retried the read request four times. This error is often the result of a hardware error, but may be caused by the device driver. For more information about error 823, see http://support.microsoft.com/kb/828339. For more information about I/O errors, see Microsoft SQL Server I/O Basics, Chapter 2. User Action 13 Check for additional information in the system event log. Contact the hardware manufacturer or Microsoft Customer Services and Support to determine the cause and corrective action. After the hardware error is fixed, restore all databases and run DBCC CHECKDB. Cause and Resolution of Integration Services Errors New: 17 July 2006 This section of the documentation contains cause and resolution information for several errors related to Integration Services. For more information about Integration Services error messages, including a list of most Integration Services errors and their descriptions, see Integration Services Error and Message Reference. However, the list currently does not include troubleshooting information. Important: Many of the error messages that you may see when you are working with Integration Services come from other components. These may include OLE DB providers, other database components such as the Database Engine and Analysis Services , or other services or components such as the file system, the SMTP server, or Microsoft Message Queueing. To find information about these external error messages, see the documentation specific to the component. Summary of errors Description Connection required when requesting metadata Indicates that SSIS Designer must connect to a data source to retrieve new or updated metadata for a source or destination, and that it is unable to connect to the data source. Product level is insufficient Indicates that the package cannot run because the appropriate version of SQL Server 2005 Integration Services (SSIS) is not installed. Connection manager not properly installed Indicates that SSIS Designer has encountered an error involving Registry permissions while enumerating the connection managers installed on the computer. Could not load file or assembly Indicates that the Script task or Script component cannot locate an assembly that is referenced within the script project. Cannot convert between Unicode and non-Unicode strings Indicates that a data flow component is trying to pass Unicode string data to another component that expects nonUnicode string data in the corresponding column, or vice versa. Cannot convert between Unicode and non-Unicode strings Message Text 1. Columns "__" and "__" cannot convert between Unicode and non-Unicode string data types. 2. Column "__" cannot convert between Unicode and non-Unicode string data types. Explanation This message indicates that a data flow component is trying to pass Unicode string data to another component that expects non-Unicode string data in the corresponding column, or vice versa. Possible Causes 14 This message might appear because of one of the following problems: You are using the Excel source and have not configured a Data Conversion transformation to convert string columns from the Unicode data that was loaded from the Excel source. You are using the Excel destination and have not configured a Data Conversion transformation to convert to Unicode the data that is being saved to the Excel destination. User Action Add Data Conversion transformations to convert the data Add Data Conversion transformations to convert string columns from non-Unicode (DT_STR) to Unicode (DT_WSTR) strings, or vice versa. Use the SQL Server Import and Export Wizard to create the package When you use the SQL Server Import and Export Wizard to create a package, it creates and configures any Data Conversion transformations that are required for you. Use the wizard to create a base package, save it, and then reconfigure and enhance it. Connection manager not properly installed Message Text The connection manager '%1' is not properly installed on this computer. Explanation This message indicates that SSIS Designer has encountered an error involving Registry permissions while enumerating the connection managers installed on the computer. Possible Causes This message might appear because of one of the following problems: There is at least one Registry key in the HKEY_CLASSES_ROOT\CLSID section of the Registry for which the current account does not have Read permissions. User Action Do not reinstall SQL Server or other components This error is not related to the installation of SQL Server or its components and cannot be resolved by uninstalling or reinstalling them. You must fix the root cause as described in the following section. Fix the problem with permissions in the Registry Integration Services relies on the COM API function EnumClassesOfCategories to enumerate connection managers that are installed on the computer. This function fails with an error if it encounters a class in the Registry whose keys the current account does not have permission to read. The solution is to locate the keys that are causing the problem and to grant at least Read permissions to the Users group on those keys. Microsoft Knowledge Base article 913817 provides C# code that you can compile and run to locate the keys that are causing the problem, and explains the steps that you can follow to fix the keys. Connection required when requesting metadata Message Text An error occurred due to no connection. A connection is required when requesting metadata. Explanation This design-time message indicates that SSIS Designer must connect to a data source to retrieve new or updated metadata for a source or destination, and that it is unable to connect to the data source. Possible Causes 15 This message might appear because of one of the following problems: You have disabled connections to data sources by enabling Work Offline from the SSIS menu in Business Intelligence Development Studio. The data source is in fact offline, or the connection attempt has failed for another reason. User Action Turn Off "Work Offline" Enable connections to data sources by turning off the Work Offline option. Ordinarily, SSIS Designer tries to connect to each data source that is used by your package to validate the metadata associated with sources and destinations. You may have enabled Work Offline from the SSIS menu to prevent these connection attempts, and to prevent the validation errors that occur when the data sources are not available. Could not load file or assembly Message Text Could not load file or assembly '%1' or one of its dependencies. The system cannot find the file specified. Explanation This message indicates that the Script task or Script component cannot locate an assembly that is referenced within the script project. Possible Causes This message might appear because of one of the following problems: The referenced assembly has not been installed in the global assembly cache (GAC). User Action Install the assembly in the global assembly cache (GAC) At design time, you must place assemblies that are used by the Integration Services Script task or Script component in specific folders before you can successfully add a reference to them in the script project. However at run time, these assemblies are loaded from the global assembly cache. Therefore you must use the gacutil.exe command prompt utility with the /i option to install each referenced assembly in the global assembly cache for use at run time. For more information, see Referencing Other Assemblies in Scripting Solutions. Product level is insufficient Message Text The product level is insufficient for __. Explanation This message indicates that the package cannot run because the appropriate version of SQL Server 2005 Integration Services (SSIS) is not installed. Possible Causes This message might appear because of one of the following problems: You are using the SQL Server Import and Export Wizard and you have installed Workstation components but you have not installed Integration Services. This problem has been fixed in Service Pack 1 or later. You can download the latest service pack from the SQL Server . You have installed Workstation components but you have not installed Integration Services. Running packages outside Business Intelligence Development Studio requires the installation of Integration Services. Your package may be attempting to use advanced components for Analysis Services, data mining, or text mining that are available only in SQL Server 2005 Enterprise Edition. User Action Install SQL Server 2005 Service Pack 1 16 If you are using the SQL Server Import and Export Wizard and you have installed Workstation components but you have not installed Integration Services, you can resolve this error by installing Service Pack 1. Install Integration Services Although installing Workstation components lets you design packages in BI Development Studio, running packages outside the development environment requires the installation of Integration Services. Subject to the terms of your SQL Server licensing agreement, you may be able to run Setup again to add Integration Services to your installation. SQL Server 2005 Integration Services (SSIS) is now a server component and is not redistributable to client computers in the same manner that the components required for SQL Server 2000 Data Transformation Services (DTS) were redistributable. Install Enterprise or Developer Edition If your package is trying to use advanced components for Analysis Services, data mining, or text mining that are available only in SQL Server 2005 Enterprise Edition, you can resolve this error by installing Enterprise Edition. Enterprise Edition requires a server operating system. For development, you can install Developer Edition to work with the advanced components. Cause and Resolution of Replication Errors Updated: 12 December 2006 This section of the documentation contains cause and resolution information for a number of errors related to replication. Error Message MSSQL_ENG002601 Cannot insert duplicate key row in object '%.*ls' with unique index '%.*ls'. MSSQL_ENG002627 Violation of %ls constraint '%.*ls'. Cannot insert duplicate key in object '%.*ls'. MSSQL_ENG003165 Database '%ls' was restored, however an error was encountered while replication was being restored/removed. The database has been left offline. See the topic MSSQL_ENG003165 in SQL Server Books Online. MSSQL_ENG003724 Cannot %S_MSG the %S_MSG '%.*ls' because it is being used for replication. MSSQL_ENG004929 Cannot alter the %S_MSG '%.*ls' because it is being published for replication. MSSQL_ENG007395. See Troubleshooting Oracle Publishers. Unable to start a nested transaction for OLE DB provider "%ls" for linked server "%ls". A nested transaction was required because the XACT_ABORT option was set to OFF. MSSQL_ENG014005 Could not drop publication. A subscription exists to it. MSSQL_ENG014010 The server '%s' is not defined as a subscription server. MSSQL_ENG014114 '%s' is not configured as a Distributor. MSSQL_ENG014117 '%s' is not configured as a distribution database. MSSQL_ENG014120 17 Could not drop the distribution database '%s'. This distributor database is associated with a Publisher. MSSQL_ENG014121 Could not drop the Distributor '%s'. This Distributor has associated distribution databases. MSSQL_ENG014144 Cannot drop Subscriber '%s'. There are subscriptions for it in the publication database '%s'. MSSQL_ENG014150 Replication-%s: agent %s succeeded. %s MSSQL_ENG014151 Replication-%s: agent %s failed. %s MSSQL_ENG014152 Replication-%s: agent %s scheduled for retry. %s MSSQL_ENG014157 The subscription created by Subscriber '%s' to publication '%s' has expired and has been dropped. MSSQL_ENG014160 The threshold [%s:%s] for the publication [%s] has been set. One or more subscriptions to this publication have expired. MSSQL_ENG014161 The threshold [%s:%s] for the publication [%s] has been set. Make sure that the logreader and distribution agents are running and can match the latency requirement. MSSQL_ENG014162 The threshold [%s:%s] for the publication [%s] has been set. Please make sure that the merge agent is running and can match the expected requirement. MSSQL_ENG014163 The threshold [%s:%s] for the publication [%s] has been set. Please make sure that the merge agent is running and can match the expected requirement. MSSQL_ENG014164 The threshold [%s:%s] for the publication [%s] has been set. Please make sure that the merge agent is running and can match the expected requirement. MSSQL_ENG014165 The threshold [%s:%s] for the publication [%s] has been set. Please make sure that the merge agent is running and can match the expected requirement. MSSQL_ENG018456 Login failed for user '%.*ls'.%.*ls MSSQL_ENG018752 Only one Log Reader Agent or log-related procedure (sp_repldone, sp_replcmds, and sp_replshowcmds) can connect to a database at a time. If you executed a log-related procedure, drop the connection over which the procedure was executed or execute sp_replflush over that connection before starting the Log Reader Agent or executing another log-related procedure. MSSQL_ENG020554 The replication agent has not logged a progress message in %ld minutes. This might indicate an unresponsive agent or high system activity. Verify that records are being replicated to the destination and that connections to the Subscriber, Publisher, and Distributor are still active. MSSQL_ENG020557 18 Agent shutdown. For more information, see the SQL Server Agent job history for job '%s'. MSSQL_ENG020572 Subscriber '%s' subscription to article '%s' in publication '%s' has been reinitialized after a validation failure. MSSQL_ENG020574 Subscriber '%s' subscription to article '%s' in publication '%s' failed data validation. MSSQL_ENG020575 Subscriber '%s' subscription to article '%s' in publication '%s' passed data validation. MSSQL_ENG020596 Only '%s' or members of db_owner can drop the anonymous agent. MSSQL_ENG020598 The row was not found at the Subscriber when applying the replicated command. MSSQL_ENG021075 The initial snapshot for publication '%s' is not yet available. MSSQL_ENG021076 The initial snapshot for article '%s' is not yet available. MSSQL_ENG021286 Conflict table '%s' does not exist. MSSQL_ENG021330 Failed to create a sub-directory under the replication working directory.(%ls) MSSQL_ENG021331 Failed to copy user script file to the Distributor.(%ls) MSSQL_ENG021385 Snapshot failed to process publication '%s'. Possibly due to active schema change activity or new articles being added. MSSQL_ENG021617. See Troubleshooting Oracle Publishers. Unable to run SQL*PLUS. Make certain that a current version of the Oracle client code is installed at the distributor. MSSQL_ENG021620. See Troubleshooting Oracle Publishers. The version of SQL*PLUS that is accessible through the system Path variable is not current enough to support Oracle publishing. Make certain that a current version of the Oracle client code is installed at the distributor. MSSQL_ENG021624. See Troubleshooting Oracle Publishers. Unable to locate the registered Oracle OLEDB provider, OraOLEDB.Oracle, at distributor '%s'. Make certain that a current version of the Oracle OLEDB provider is installed and registered at the distributor. For addition information, see SQL Server Error 21624 in Troubleshooting Oracle Publishers in SQL Server Books Online. MSSQL_ENG021626. See Troubleshooting Oracle Publishers. Unable to connect to Oracle database server '%s' using the Oracle OLEDB provider OraOLEDB.Oracle. MSSQL_ENG021627. See Troubleshooting Oracle Publishers. Unable to connect to Oracle database server '%s' using the Microsoft OLEDB provider MSDAORA. MSSQL_ENG021628. See Troubleshooting Oracle Publishers. Unable to update the registry of distributor '%s' to allow Oracle OLEDB provider OraOLEDB.Oracle to run in process with SQL Server. Make certain that current login is authorized to modify SQL Server owned registry keys. 19 MSSQL_ENG021629. See Troubleshooting Oracle Publishers. The CLSID registry key indicating that the Oracle OLEDB Provider for Oracle, OraOLEDB.Oracle, has been registered is not present at the distributor. Make certain that the Oracle OLEDB provider is installed and registered at the distributor. MSSQL_ENG021642. See Troubleshooting Oracle Publishers. Heterogeneous publishers require a linked server. A linked server named '%s' already exists. Please remove linked server or choose a different publisher name. MSSQL_ENG021663. See Troubleshooting Oracle Publishers. No valid primary key found for source table [%s].[%s]. MSSQL_ENG021684. See Troubleshooting Oracle Publishers. 'The replication administrative user for Oracle Publisher "%s" has insufficient permissions. Refer to the script /MSSQL/Install/oracleadmin.sql for the required permissions. MSSQL_ENG021797 '%s' must be a valid Windows Login in the form: 'MACHINE\Login' or 'DOMAIN\Login'. Please see the documentation for '%s'. MSSQL_ENG021798 The '%s' agent job must be added via '%s' before continuing. Please see the documentation for '%s'. MSSQL_ENG024070 A required privilege is not held by the client. MSSQL_REPL020011 The process could not execute '%1' on '%2'. MSSQL_REPL027056 The merge process was unable to change generation history at the '%1'. When troubleshooting, restart the synchronization with verbose history logging and specify an output file to which to write. MSSQL_REPL027183 The merge process failed to enumerate changes in articles with parameterized row filters. If this failure continues, increase the query timeout for this process, reduce the retention period for the publication, and improve indexes on published tables. Cause and Resolution of Full-Text Errors New: 17 July 2006 This section contains cause and resolution information for a selection of errors that are related to full-text search.Error Message MSSQLSERVER_9955 SQL Server failed to communicate with Full-Text Service (msftesql%ls%ls). The system administrator must make sure that same service account is used for both services and the service account has the permission to auto start the full-text service. MSSQLSERVER_9957 Full-text operation failed due to full-text catalog %ls is corrupted. Use rebuild rebuild catalog to correct the problem. MSSQLSERVER_9955 New: 17 July 2006 Details 20 Product Name SQL Server Product Version 9.0 Product Build Number 9.00.1399 Event ID 9955 Event Source MSSQLSERVER Component SQLEngine Symbolic Name FTXT2_MSSEARCHACCESSDENY Message Text SQL Server failed to communicate with Full-Text Service (msftesql%ls%ls). The system administrator must make sure that same service account is used for both services and the service account has the permission to auto start the full-text service. Explanation This message occurs because SQL Server Configuration Manager was not used to change either the SQL Server Service Account or the SQL Server Full-Text Search Service Account. This prevents the SQL Server Service Account from accessing the Full-Text Search Service. User Action Use SQL Server Configuration Manager to reapply the changes to the SQL Server Service Account. This enables permissions to be checked when the Full-Text Search Service starts. MSSQLSERVER_9957 New: 17 July 2006 Details Product Name SQL Server Product Version 9.0 Product Build Number 9.00.1399 Event ID 9957 Event Source MSSQLSERVER Component SQLEngine 21 Symbolic Name FTXT2_CATALOGCORRUPTED Message Text Full-text operation failed due to full-text catalog %ls is corrupted. Use rebuild rebuild catalog to correct the problem. Explanation This message occurs when a full-text catalog is corrupted. Full-text catalogs can become corrupted for any of the following reasons: A failure occurs while the full-text catalog is being populated. This may cause inconsistencies in the data that is written to the catalog. Data inconsistencies are especially likely when a failover cluster node fails over to another node during population. The hard disk that stores the full-text catalog fails. A catalog file that belongs to the catalog directory is mistakenly deleted. The catalog is mistakenly attached to more than one database. User Action Run the ALTER FULLTEXT CATALOG Transact-SQL statement, specifying REBUILD. Alternatively, restore the full-text catalog from a backup. Notification Services Errors and Events Microsoft SQL Server Notification Services provides compile-time and run-time error messages: When you create an instance of Notification Services error messages are displayed in the user interface. These messages typically inform you of errors in an application definition, the instance configuration, or supporting files. They also can inform you if a specified operation, such as deleting an instance, is not possible. When an instance of Notification Services is running, events are written to the Microsoft Windows Application log. You can view these events with Windows Event Viewer. The events written to the Application log provide the most help for troubleshooting an instance of Notification Services. For example, if notifications are not being delivered, events in the Application log can help you determine why. Even if your notification applications are running as expected, you should check the Application log periodically. Checking the log on a regular schedule can help avoid significant system problems. In This Section Topic Description Viewing Notification Services Events Provides instructions for view Notification Services events in the Windows Event Viewer. Notification Services Event Format Describes the structure of event messages. Cause and Resolution of Notification Services Events Lists the types of Notification Services event messages and their event ID ranges. Reporting Services Errors and Events Updated: 17 July 2006 This topic provides information about errors and events for SQL Server Reporting Services. The Reporting Services log files also contain error information. To learn more about the types of log files that are available and how to view the logs, see Reporting Services Log Files. Cause and Resolution for Reporting Services Error Messages 22 Cause and resolution information is available for the errors most frequently searched for on the Microsoft Web sites. For more information, see Cause and Resolution of Reporting Services Errors. Additional cause and resolution information will become available over the next several releases of SQL Server Books Online. To check whether you have the latest version, see Downloading and Updating Books Online. Report Server Events The following report server events are recorded in the Microsoft Windows application log.Event ID Category Source Description Type 106 Error Scheduling Report Server SQL Server Agent must be running when you define a scheduled operation (for example, report subscription and delivery). 107 Error Startup/Shutdown Report Server Scheduling and Delivery Processor <Source> cannot connect to the report server database. For more information, see Report Server Windows Service (MSSQLServer) 107 and Troubleshooting Server and Database Connection Problems. 108 Error Extension Report Server Report Manager <Source> cannot load a delivery, data processing, or rendering extension. Most likely, this is the result of an incomplete deployment or removal of an extension. For more information, see Deploying a Data Processing Extension and Deploying a Delivery Extension. 109 Information Management Report Server Report Manager A configuration file has been modified. For more information, see Reporting Services Configuration Files. 110 Warning Management Report Server Report Manager A setting in one of the configuration files has been modified such that it is no longer valid. A default value will be used instead. For more information, see Reporting Services Configuration Files. 111 Error Logging Report Server Report Manager 23 <Source> cannot create the trace log. For more information, see Reporting Services Trace Logs. 112 Warning Security Report Server The report server has detected a possible denial of service attack. For more information, see Securing Reporting Services. 113 Error Logging Report Server The report server cannot create a performance counter. 114 Error Startup/Shutdown Report Manager Report Manager cannot connect to the Report Server service. 115 Warning Scheduling Scheduling and Delivery Processor A scheduled task in the SQL Server Agent queue has been modified or deleted. 116 Error Internal Report Server Report Manager Scheduling and Delivery Processor An internal error occurred. 117 Error Startup/Shutdown Report Server The report server database is an invalid version. For more information, see Troubleshooting Server and Database Connection Problems. 118 Warning Logging Report Server Report Manager The trace log is not at the expected directory location; a new trace log will be created in the default directory. For more information, see Reporting Services Trace Logs. 119 Error Activation Report Server Scheduling and Delivery Processor 24 <Source> has not been granted access to the contents of the report server database. 120 Error Activation Report Server The symmetric key cannot be decrypted. Most likely, the there has been a change to the account that the service runs as. For more information, see Managing Encryption Keys. 121 Error Startup/Shutdown Report Server Remote Procedure Call (RPC) Service failed to start. 122 Warning Delivery Scheduling and Delivery Processor Scheduling and Delivery Processor cannot connect to the SMTP server that is used for e-mail delivery. For more information about SMTP server connections, see Configuring a Report Server for E-Mail Delivery. 123 Warning Logging Report Server Report Manager The report server failed to write to the trace log. For more information about trace logs, see Reporting Services Trace Logs. 124 Information Activation Report Server The Report Server service has been initialized. For more information, see Initializing a Report Server. 125 Information Activation Report Server The key used for encrypting data was successfully extracted. For more information about keys, see Managing Encryption Keys. 126 Information Activation Report Server The key used for encrypting data was successfully applied. For more information about keys, see Managing Encryption Keys. 127 Information Activation Report Server Encrypted content was successfully removed from the report server database. For more information about deleting non-recoverable encrypted data, see Managing Encryption Keys. 128 25 Error Activation Report Server Reporting Services components from different editions cannot be used together. 129 Error Management Report Server Scheduling and Delivery Processor An encrypted configuration file setting in cannot be decrypted. 130 Error Management Report Server Scheduling and Delivery Processor <Source> cannot find the configuration file. Configuration files are required by the report server. 131 Error Security Report Server Scheduling and Delivery Processor An encrypted user data value could not be decrypted. 132 Error Security Report Server A failure occurred during encryption of user data. The value cannot be saved. 133 Error Management Report Server Report Manager Scheduling and Delivery Processor A configuration file failed to load. This error may occur if the XML is not valid. 134 Error Management Report Server The report server failed to encrypt values for a setting in a configuration file. 26 27 28