
Eliminar una fila duplicada con un Stored Procedure
Publicado por Rubhenn (12 intervenciones) el 29/05/2015 20:45:25
Que tal, los molesto de nuevo.
Tengo estas 2 tablas:
PiramideTarifas
(
idPird int identity (1,1) Primary Key,
NomPir varchar (60),
FchIni char (8),
FchFin char (8),
FchOpr char(8),
HorOpr char (5),
/*Baja de Operación*/
Baja tinyint,
IdUser int,
);
PiramideSucursales
(
idPiSu int identity (1,1),
idPird int references PiramideTarifas (idPird),
Origen char (3),
Destin char (3),
Precio numeric (13,2),
);
Lo que quiero hacer es lo siguiente, ya tengo como insertar y actualizar un registro mediante un Stored Procedure, pero lo que quiero saber es como eliminar una fila si se encuentra duplicado algún registro en las tablas.
Los procedimientos que tengo son los siguientes:
drop proc spIUPiramideTarifas
go
create proc spIUPiramideTarifas
@idPird int,
@NomPir varchar (60),
@FchIni char (8),
@FchFin char (8),
@Baja tinyint,
@IdUser int
as
declare @FchOpr char(8), @HorOpr char (5)
--sacar la fecha y hora actual del servidor
select @FchOpr = convert (char(8), getdate(), 112), @HorOpr = convert (char(5), getdate(), 108)
if @idpird = 0 begin
insert into PiramideTarifas
select @NomPir, @FchIni, @FchFin, @FchOpr, @HorOpr, @Baja, @IdUser
if @@rowcount = 1 begin
print 'Elemento guardado correctamente'
end else begin
print 'El elemento no se ha guardado'
end
end else if @idpird > 0 begin
update PiramideTarifas
set
NomPir = @Nompir, Fchini = @FchIni, FchFin = @FchFin, FchOpr = @FchOpr, HorOpr = @HorOpr, Baja = @Baja, IdUser = @IdUSer
where
idpird = @idpird
select @@rowcount
end
GO
grant exec on spIUPiramideTarifas to public
drop proc spIUPiramideSucursales
go
create proc spIUPiramideSucursales
@idPiSu int,
@idPird int,
@Origen char (3),
@Destin char (3),
@Precio numeric (13,2)
as
insert into PiramideSucursales select @idPird, @Origen, @Destin, @Precio
select @@rowcount
if @@rowcount = 1 begin
print 'Elemento guardado correctamente'
end
else
print'El elemento no se ha guardado'
go
grant exec on spIUPiramideSucursales to public
necesito que me valide si existe algun registro igual y si es asi me elimine dicho registro, todo mediante el mismo Stored Procedure.
Estoy utilizando SQL 6.5..agradeceria me pudieran ayudar. Siento que es sencilla la conidcion, pero no he encontrado la solucion.
Saludos y espero que se entienda mi consulta.!!
Tengo estas 2 tablas:
PiramideTarifas
(
idPird int identity (1,1) Primary Key,
NomPir varchar (60),
FchIni char (8),
FchFin char (8),
FchOpr char(8),
HorOpr char (5),
/*Baja de Operación*/
Baja tinyint,
IdUser int,
);
PiramideSucursales
(
idPiSu int identity (1,1),
idPird int references PiramideTarifas (idPird),
Origen char (3),
Destin char (3),
Precio numeric (13,2),
);
Lo que quiero hacer es lo siguiente, ya tengo como insertar y actualizar un registro mediante un Stored Procedure, pero lo que quiero saber es como eliminar una fila si se encuentra duplicado algún registro en las tablas.
Los procedimientos que tengo son los siguientes:
drop proc spIUPiramideTarifas
go
create proc spIUPiramideTarifas
@idPird int,
@NomPir varchar (60),
@FchIni char (8),
@FchFin char (8),
@Baja tinyint,
@IdUser int
as
declare @FchOpr char(8), @HorOpr char (5)
--sacar la fecha y hora actual del servidor
select @FchOpr = convert (char(8), getdate(), 112), @HorOpr = convert (char(5), getdate(), 108)
if @idpird = 0 begin
insert into PiramideTarifas
select @NomPir, @FchIni, @FchFin, @FchOpr, @HorOpr, @Baja, @IdUser
if @@rowcount = 1 begin
print 'Elemento guardado correctamente'
end else begin
print 'El elemento no se ha guardado'
end
end else if @idpird > 0 begin
update PiramideTarifas
set
NomPir = @Nompir, Fchini = @FchIni, FchFin = @FchFin, FchOpr = @FchOpr, HorOpr = @HorOpr, Baja = @Baja, IdUser = @IdUSer
where
idpird = @idpird
select @@rowcount
end
GO
grant exec on spIUPiramideTarifas to public
drop proc spIUPiramideSucursales
go
create proc spIUPiramideSucursales
@idPiSu int,
@idPird int,
@Origen char (3),
@Destin char (3),
@Precio numeric (13,2)
as
insert into PiramideSucursales select @idPird, @Origen, @Destin, @Precio
select @@rowcount
if @@rowcount = 1 begin
print 'Elemento guardado correctamente'
end
else
print'El elemento no se ha guardado'
go
grant exec on spIUPiramideSucursales to public
necesito que me valide si existe algun registro igual y si es asi me elimine dicho registro, todo mediante el mismo Stored Procedure.
Estoy utilizando SQL 6.5..agradeceria me pudieran ayudar. Siento que es sencilla la conidcion, pero no he encontrado la solucion.
Saludos y espero que se entienda mi consulta.!!
Valora esta pregunta


0