Identificar Códigos Iguales
Publicado por Tania (1 intervención) el 27/03/2007 18:00:43
Hola
Podrían ayudarme, tengo una tabla que se encuentra formada por varios campos entre ellos, un campo llamado nro_contrato que es un varchar(15), en este campo guardo un codigo de contrato pero en la base existen codigos repetidos aunque el resto de campos no lo son, ahora necesito idenficar estós códigos repetidos.
Trate de hacerle en un stored procedure en donde primero tengo los codigos de contrato q sean unicos y luego quiero usar un cursor para actualizar las veces q se repite ese código
pero se me presentan estos errores
Server: Msg 156, Level 15, State 1, Procedure sp_compara, Line 31
Incorrect syntax near the keyword 'select'.
Server: Msg 156, Level 15, State 1, Procedure sp_compara, Line 70
Incorrect syntax near the keyword 'cursor'.
Este es el código del stored procedure que hice
use sistematizacion
go
if exists (select * from sysobjects where name = 'sp_compara')
drop proc sp_compara
go
create proc sp_compara(
@i_fecha_fin datetime=null
)
as
Declare @w_sp_name varchar(25),
@w_sec int,
@w_nro_contrato varchar(30),
@w_veces int
select @w_sp_name = 'sp_compara',
@w_veces = 0
--Tabla en donde almaceno los datos de codigo
create table Compara_Datos(
cd_nro_contrato varchar(30) null,
cd_veces int null )
insert into Compara_Datos(cd_nro_contrato,cd_veces)
select distinct(sis_nro_contrato),0
from siste_1
declare cursor_compara cursor
select cd_nro_contrato
from Compara_Datos
open cursor_compara
FETCH NEXT FROM cursor_oficina into
@w_nro_contrato
while @@fetch_status!= 2
BEGIN
if (@@fetch_status = 1)
BEGIN
goto ERROR
END
BEGIN TRAN
select @w_veces =count(*)
from siste_1
where sis_nro_contrato = @w_nro_contrato
update Compara_Datos
set cd_veces = @w_veces
where cd_nro_contrato = @w_nro_contrato
select @w_veces =0
if @@rowcount =0
begin
goto ERROR
end
COMMIT TRAN
FETCH NEXT FROM cursor_compara into
@w_nro_contrato
END
CLOSE cursor_compara
DEALLOCATE cursor cursor_compara
return 0
ERROR:
return 1
go
Si por favor me dicen q estoy haciendo mal.
Gracias
Podrían ayudarme, tengo una tabla que se encuentra formada por varios campos entre ellos, un campo llamado nro_contrato que es un varchar(15), en este campo guardo un codigo de contrato pero en la base existen codigos repetidos aunque el resto de campos no lo son, ahora necesito idenficar estós códigos repetidos.
Trate de hacerle en un stored procedure en donde primero tengo los codigos de contrato q sean unicos y luego quiero usar un cursor para actualizar las veces q se repite ese código
pero se me presentan estos errores
Server: Msg 156, Level 15, State 1, Procedure sp_compara, Line 31
Incorrect syntax near the keyword 'select'.
Server: Msg 156, Level 15, State 1, Procedure sp_compara, Line 70
Incorrect syntax near the keyword 'cursor'.
Este es el código del stored procedure que hice
use sistematizacion
go
if exists (select * from sysobjects where name = 'sp_compara')
drop proc sp_compara
go
create proc sp_compara(
@i_fecha_fin datetime=null
)
as
Declare @w_sp_name varchar(25),
@w_sec int,
@w_nro_contrato varchar(30),
@w_veces int
select @w_sp_name = 'sp_compara',
@w_veces = 0
--Tabla en donde almaceno los datos de codigo
create table Compara_Datos(
cd_nro_contrato varchar(30) null,
cd_veces int null )
insert into Compara_Datos(cd_nro_contrato,cd_veces)
select distinct(sis_nro_contrato),0
from siste_1
declare cursor_compara cursor
select cd_nro_contrato
from Compara_Datos
open cursor_compara
FETCH NEXT FROM cursor_oficina into
@w_nro_contrato
while @@fetch_status!= 2
BEGIN
if (@@fetch_status = 1)
BEGIN
goto ERROR
END
BEGIN TRAN
select @w_veces =count(*)
from siste_1
where sis_nro_contrato = @w_nro_contrato
update Compara_Datos
set cd_veces = @w_veces
where cd_nro_contrato = @w_nro_contrato
select @w_veces =0
if @@rowcount =0
begin
goto ERROR
end
COMMIT TRAN
FETCH NEXT FROM cursor_compara into
@w_nro_contrato
END
CLOSE cursor_compara
DEALLOCATE cursor cursor_compara
return 0
ERROR:
return 1
go
Si por favor me dicen q estoy haciendo mal.
Gracias
Valora esta pregunta


0