SQL Server - como hacer IR

 
Vista:

como hacer IR

Publicado por viajeronet (6 intervenciones) el 27/12/2010 00:57:49
Hola a todos.
Necesito que al tratar de eliminar un registro en una tabla, compruebe si el dato existe en otra tabla, si existe no elimine el registro. Ejemplo.

Tabla Productos PK Codigo
Tabla Factura_detalle FK codigo_producto
Si trata de eliminar el producto (DELETE) y existe en FActura_detalle no lo debe eliminar.

Como lo realizo?

Muchas Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como hacer IR

Publicado por Juan Carlos (6 intervenciones) el 27/12/2010 04:21:00
create proc Elimina_Productos
@Codigo tipo_de_tu_campo
as
declare @numero int
Select @numero=count(*) from Detalle_Factura where Codigo_producto=@Codigo
if @numero not null
begin
print 'no se puede Borrar'
end
else
begin
delete from productos where Codigo=@Codigo
end
go

este proc debería funcionar si no es asi modificalo un poquitin por que puede haber error de sintaxis pues lo he hecho aqui en el editor y no en MSSQL ojala te ayude :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:como hacer IR

Publicado por Isaias (4558 intervenciones) el 27/12/2010 21:31:48
De acuerdo, aunque si estan establecidas tus relaciones y creados tus constraints, no debes tener problema, la base se encargara de cuidar el DRI
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como hacer IR

Publicado por Andy Rivas (3 intervenciones) el 28/12/2010 17:31:04
delete
a
from
tabla_uno a
where
not exists(
select 1
from
tabla_dos b
where
b.codigo = @variable -->Filtros necesarios para comprobar existencia
)
and a.codigo = @variable

--------------------------

if not exists(
select 1
from
tabla_dos b
where
b.codigo = @variable -->Filtros necesarios para comprobar existencia
)
begin
delete from tabla_uno
where a.codigo = @variable
end

Un poco tarde pero espero y te sirva, suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar