Select the product you need help with
Диагностика ошибок DBCC 2570 в SQL Server 2005Код статьи: 923247 - Список продуктов, к которым относится данная статья. На этой страницеВведение эта ссылка может указывать на содержимое полностью или частично на английском языкеВ данной статье описаны ошибки SQL Server 2570, что приводит к ошибке и решить проблему. Дополнительная информацияПроверка DATA_PURITYВ SQL Server 2005 был добавлен новый параметр DATA_PURITY, команды DBCC CHECKDB и DBCC CHECKTABLE. При выполнении команды DBCC CHECKDB и DBCC CHECKTABLE этот параметр включен, будет выполнять проверки «данных чистота» на значение каждого столбца во всех строках таблицы или таблиц в базе данных. Эти новые проверки выполняются, чтобы гарантировать правильность значений, хранящихся в столбцах (то есть, значения не равны вне этого диапазона для домена связан с типом данных этого столбца). Характер выполнения проверки зависит от типа данных столбца. Ниже приведен не исчерпывающий список предоставляет несколько примеров:Свернуть эту таблицу
Чистота проверки данных не включается автоматически для всех баз данных. Проверяет, включены в зависимости от нескольких факторов:
ПризнакиInvalid or out-of-range data may have been stored in the SQL Server database in earlier versions for the following reasons:
Some of the symptoms you may notice due to the presence of invalid data include (but are not limited to):
DATA_PURITY Problem ReportWhen you execute a DBCC CHECKDB or DBCC CHECKTABLE command with the DATA_PURITY option enabled (or the data purity checks are run automatically), and invalid data exists in the tables checked by the DBCC commands, the DBCC output includes additional messages that indicate the problems with the data. Some sample error messages that indicate data purity problems are shown below:DBCC results for
"account_history". Msg 2570, Level 16, State 2, Line 1 Page (1:1073), slot 33 in object ID 1977058079, index ID 0, partition ID 129568478265344, alloc unit ID 129568478265344 (type "In-row data"). Column "account_name_japan" value is out of range for data type "nvarchar". Update column to a legal value. Msg 2570, Level 16, State 2, Line 1 Page (1:1156), slot 120 in object ID 1977058079, index ID 0, partition ID 129568478265344, alloc unit ID 129568478265344 (type "In-row data"). Column "account_name_japan" value is out of range for data type "nvarchar". Update column to a legal value. There are 153137 rows in 1080 pages for object "account_history". CHECKDB found 0 allocation errors and 338 consistency errors in table "account_history" (object ID 1977058079). CHECKDB found 0 allocation errors and 338 consistency errors in database 'BadUnicodeData'. DBCC execution completed. If DBCC printed error messages, contact your system administrator. DBCC results for 'table1'. Msg 2570, Level 16, State 3, Line 1 Page (1:154), slot 0 in object ID 2073058421, index ID 0, partition ID 72057594038321152, alloc unit ID 72057594042318848 (type "In-row data"). Column "col2" value is out of range for data type "real". Update column to a legal value. There are 4 rows in 2 pages for object "table1". CHECKDB found 0 allocation errors and 1 consistency errors in table 'table1' (object ID 2073058421). CHECKDB found 0 allocation errors and 1 consistency errors in database 'realdata'. DBCC execution completed. If DBCC printed error messages, contact your system administrator. DBCC results for 'table2'. Msg 2570, Level 16, State 3, Line 1 Page (1:155), slot 0 in object ID 2105058535, index ID 0, partition ID 72057594038452224, alloc unit ID 72057594042449920 (type "In-row data"). Column "col2" value is out of range for data type "decimal". Update column to a legal value. There are 4 rows in 1 pages for object "table2". CHECKDB found 0 allocation errors and 1 consistency errors in table 'table2' (object ID 2105058535). CHECKDB found 0 allocation errors and 1 consistency errors in database 'realdata'. DBCC execution completed. If DBCC printed error messages, contact your system administrator. DBCC results for 'table3'. Msg 2570, Level 16, State 3, Line 1 Page (1:157), slot 0 in object ID 2121058592, index ID 0, partition ID 72057594038517760, alloc unit ID 72057594042515456 (type "In-row data"). Column "col2" value is out of range for data type "datetime". Update column to a legal value. There are 3 rows in 1 pages for object "table3". CHECKDB found 0 allocation errors and 1 consistency errors in table 'table3' (object ID 2121058592). CHECKDB found 0 allocation errors and 1 consistency errors in database 'realdata'. DBCC execution completed. If DBCC printed error messages, contact your system administrator. Fixing the Data Purity ProblemThe 2570 errors cannot be repaired using any of the DBCC repair options. This is because it is impossible for DBCC to determine what value should used to replace the invalid column value. Thus, the column value must be manually updated.To perform a manual update, you have to find the row that has the problem. There are two ways to accomplish this.
После того, как найти правильную строку, решение необходимо сделать на новое значение, которое будет использоваться для замены существующих недопустимые данные. Это решение должно выполняться очень тщательно на основе ряда значений, которые работают для приложения также делает логический смысл для этой конкретной строки данных. У вас есть варианты:
Поиск строк с недопустимое значение, с помощью запросов T-SQLТип запроса, которые необходимо выполнить, чтобы найти строки, которые содержат недопустимые значения зависит от типа данных столбца, который сообщил проблемы. Если вы посмотрите на сообщение об ошибке 2570, вы заметите два важных сведений, которые помогут вам в этом. В следующем примере значение столбца «account_name_japan» находится вне диапазона для типа данных "nvarchar". Мы можно легко определить столбец, который имеет проблемы, а также тип данных столбца, используемых. Таким образом после того, как известно, что тип данных, используемых столбцов сформулировать запрос для поиска строки, содержащие недопустимые значения для столбца выбора столбцов необходимо для идентификации строки (как предикаты в предложении WHERE) для любого дальнейшего обновления или удаления.Введите данные в кодировке Юникод: Дата, время данных типа: Необходимо выполнить два разных запросов для идентификации строки, содержащие недопустимые значения для столбца даты времени. Поиск строк с недопустимым значением с помощью физического расположения:You can use this method if you are unable to find the rows of interest using the T-SQL method discussed above. In the 2570 error message, the physical location of the row that contains the invalid value is printed. For example, look at the following message:Page (1:157),
slot 0 in object ID 2121058592, index ID 0, partition ID 72057594038517760,
alloc unit ID 72057594042515456 (type "In-row data"). Column "col2" value is
out of range for data type "datetime". Update column to a legal
value.
ПредупреждениеWe recommend that you use the first method (that is, use T-SQL queries to find the required information). Use the DBCC PAGE command only as a last resort. Take utmost care while you use this command in a production environment. It is advisable to restore the production database on a test server, then get all the required information using DBCC PAGE, and then do the updates on the production server. As always, make sure to keep a backup ready in case something goes wrong and you need to revert to an earlier copy of the database. СсылкиFor more information about the DBCC CHECKDB statement, see
the "DBCC CHECKDB (Transact-SQL)" topic on the following Microsoft Developer
Network (MSDN) Web site: http://msdn2.microsoft.com/en-us/library/ms176064.aspx For more information about known
issues in SQL Server 2000, click the following article number to view the
article in the Microsoft Knowledge Base:
(http://msdn2.microsoft.com/en-us/library/ms176064.aspx)
900335 For more information about RPC events, see the
"Calling a Stored Procedure (OLE DB)" topic on the following MSDN Web site:
(http://support.microsoft.com/kb/900335/
)
FIX: The SQL Server 2000 automatic database recovery operation may not succeed if an index contains a FLOAT data type or a REAL data type, and this data type contains a NaN valuehttp://msdn2.microsoft.com/en-us/library/aa198358(SQL.80).aspx For more information about the different data types, see the
"Calling a Stored Procedure (OLE DB)" topic on the following MSDN Web site:
(http://msdn2.microsoft.com/en-us/library/aa198358(SQL.80).aspx)
http://msdn2.microsoft.com/en-us/library/ms187752.aspx For more information about floating point value conventions, visit
the following Intel Web site:
(http://msdn2.microsoft.com/en-us/library/ms187752.aspx)
http://www.intel.com/design/pentiumii/manuals/243191.htm Контактные данные независимых производителей предоставлены в этой статье с целью помочь пользователям получить необходимую техническую поддержку..
Эти данные могут быть изменены без предварительного уведомления.. Корпорация Майкрософт не дает гарантий относительно верности приведенных контактных данных сторонних производителей..
(http://www.intel.com/design/pentiumii/manuals/243191.htm)
СвойстваКод статьи: 923247 - Последнее изменение :: 27 ноября 2010 г. - Редакция: 2.0 Информация в данной статье относится к следующим продуктам.
Переведено с помощью машинного перевода ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода. Эта статья на английском языке:923247
(http://support.microsoft.com/kb/923247/en-us/
)
| Переводы статьи
|




Перейти к началу страницы








