REVISIÓN: Creación de tabla, la inserción de fila y creación de índices en la transacción, Y por la adición de la restricción pueden producir en errores de coherencia

Seleccione idioma Seleccione idioma
Id. de artículo: 286749 - Ver los productos a los que se aplica este artículo
Error nº: 351939 (SHILOH_bugs)
Expandir todo | Contraer todo

Síntomas

Cuando abra una transacción, crear una tabla, insertar filas, cree un índice en la tabla, confirmar la transacción y, a continuación, agregar una restricción, un DBCC CHECKTABLE posteriores puede informar de errores de coherencia. DBCC CHECKTABLE puede devolver resultados similar para:
Servidor: Msg 8970, nivel 16, estado 1, línea 2
Error de fila: 2041058307 de identificador de objeto, índice de ID. de 0, página ID (1:77), fila ID. de 0. Se creó la columna 'LastModified' NOT NULL, pero está NULL en la fila.
Servidor: Msg 8970, nivel 16, estado 1, línea 2
Error de fila: 2041058307 de identificador de objeto, índice de ID. de 0, página ID (1:77), fila ID 1. Se creó la columna 'LastModified' NOT NULL, pero está NULL en la fila.
Servidor: Msg 8970, nivel 16, estado 1, línea 2
Error de fila: 2041058307 de identificador de objeto, índice de ID. de 0, página ID (1:77), fila ID 2. Se creó la columna 'LastModified' NOT NULL, pero está NULL en la fila.
Resultados de DBCC para '# TableX_____________________________000000000011'.
No hay 0 filas en las páginas 1 para el objeto 'TableX______________________________________________000000000011 #'.
CHECKTABLE había encontrado 0 errores de asignación y errores de coherencia 3 en '# TableX________________________000000000011' (objeto 2041058307 ID) de la tabla.
REPAIR_ALLOW_DATA_LOSS es el nivel mínimo de reparación de los errores encontrados por DBCC CHECKTABLE (tempdb.dbo.#TableX________________________________________000000000011).

Se registra un mensaje similar al siguiente en el registro de error de SQL Server:
ejecutar <domain>\<user> (tempdb.dbo.#TableX______________________________000000000011) encontró 3 errores y reparar errores 0.

Solución

Para resolver este problema, consiga el Service Pack más reciente para SQL Server 2000. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
290211INF: Cómo obtener el Service Pack más reciente de SQL Server 2000

Solución

Para evitar este problema, utilice cualquiera de los métodos siguientes:
  • Cree el índice después de confirmar la transacción.
  • Insertar un valor en la tabla después de crear el índice y antes de cerrar la transacción.
  • Insertar un valor en la tabla después de confirmar la transacción y antes de agregar la restricción.

Estado

Microsoft ha confirmado que este es un problema de SQL Server 2000. Este problema se corrigió por primera vez en SQL Server 2000 Service Pack 1.

Más información

Para reproducir el problema, ejecute la siguiente secuencia de comandos:
begin tran
create table #TableX (Col1 varchar(20))
insert #TableX values ('A')
insert #TableX values ('B')
insert #TableX values ('C')
create index ix_Col1 on #TableX(Col1)  -- works fine when this is moved after the commit
--insert #TableX values ('D') -- or when this is uncommented
commit

--insert #TableX values ('D') -- or when this is uncommented

alter table #TableX add LastModified datetime not null constraint cn_Enabled default getdate()
go
select * from #TableX
dbcc checktable(#TableX)
go
drop table #TableX
				

Propiedades

Id. de artículo: 286749 - Última revisión: viernes, 17 de octubre de 2003 - Versión: 3.2
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Standard Edition
Palabras clave: 
kbmt kbbug kbfix kbsqlserv2000sp1fix KB286749 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 286749

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com