Esta es una base de datos sql 2000 con la que estoy trabajando.SQL 2000 'TRY CATCH like' Manejo de errores
Tengo lo que llamo una tabla de etapas que es un volcado de datos sin procesar de datos, entonces todo es ntext o nvarchar (255).
necesito fundido/convertir todos estos datos en los tipos de datos apropiados (es decir, int, decimal, nvarchar, etc.)
La forma en que iba a hacer esto era para iterar a través de todos los registros utilizando una while loop e intento un CAST en cada columna en un solo registro durante cada iteración, después de visitar un registro en particular lo señalo como procesado (campo de bit).
Pero, ¿cómo puedo registrar el error cuando/si ocurre pero permitir que el ciclo while continúe.
Al principio implementé esto usando TRY CATCH en una instancia local de SQL 2005 (para poner en marcha el proyecto) y todo funcionaba bien, pero hoy supe que la base de datos de desarrollo dev & que los DBA internacionales han configurado es una instancia de SQL 2000, así que tengo que conformarme.
EDIT: Estoy usando un paquete de SSIS para rellenar la tabla de etapas. Veo que ahora debo volver a visitar ese paquete e implementar un componente de script para manejar las conversiones. Gracias chicos
EDIT: I am hacer esto en un registro de base de registro, no un lote insertar, por lo que la idea de transacción parece como que sería factible, pero no estoy seguro de cómo atrapar @@ ERROR y permita que el procedimiento almacenado continúe.
EDIT: Me gusta mucho Guy's approach, lo voy a implementar de esta manera.