Transact-SQL Insert

Tengo un problema en un procedimiento almacenado de SQL Server. Resulta que hago un Insert en una tabla y como estoy repitiendo la clave primaria da un error de Primary Key y se sale del bucle. ¿No hay manera de capturar el error y que siga en el bucle?

1 Respuesta

Respuesta
1
Según lo que me comentas necesito saber si estaré procedimiento realiza solo el insert de 1 registro o de más de uno.
Si es de más de uno añade una condición a la consulta del insert del tipo:
Si solo insertas 1 registro
Declare @existe as bit
set @existe=(Select count(*) from TablaDestino where id=(Select Id from Tabla2))
if @existe=1
BEGIN
HACES EL INSERT
END
Si insertas mas de 1 registro enbase a 1 select
La tabla2 es origen del insert
Insert into tabla1(campos...)
from tabla1
where
IdCampoTabla1 not in(
Select idCampoTabla2)
Espero serte de ayuda, pero si no te importa hay una cosa que no acabo de entender;¿Por qué haces un bucle?
Lo que me comentas es lo que tenía hecho pero tenía la esperanza que hubiese algo como el try/catch que han sacado en SQL Yukon.
El bucle lo hago porque tengo que hacer una serie de validaciones e insertar dependiendo de muchas cosas.
Muchas gracias por tu ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas