Me están solicitando que agregue una validación que no permita crear un SN mas de una vez, pensé en poner una validación en el TN donde consultara el RFC sin embargo no sé contra qué comparar para determinar si ya existe o no, mi consulta está así, y mi problema está en el IF ya que rfc siempre sera igual al rfc, espero me puedan ayudar.
Saludos
declare @rfc nvarchar (13)
if @object_type = '2' and @transaction_type in ('A','U')
begin
select @rfc = LicTradNum
from OCRD
where cardCode = @list_of_cols_val_tab_del
if (@rfc = @rfc )
begin
Set @error = - 002
Set @error_message = 'Error - El RFC ya se encuentra registrado'
end
end
IF @object_type = '2' and @transaction_type in ('A','U')
BEGIN
declare @RFC varchar(13)
declare @tipoSN varchar(1)
declare @existe varchar(13)
declare @re varchar(10)
SELECT @tipoSN = CardType FROM OCRD T2 WHERE @list_of_cols_val_tab_del= T2.CardCode
select @re = CASE when @tipoSN = 'C' then 'Cliente' when @tipoSN = 'S' then 'Proveedor' else 'Lead' end
SELECT @RFC = LicTradNum FROM OCRD T3 WHERE @list_of_cols_val_tab_del= T3.CardCode and T3.CardType=@tipoSN
Select @existe = T4.LicTradNum from OCRD T4 where T4.LicTradNum=@RFC AND T4.CardCode <> @list_of_cols_val_tab_del
and (T4.LicTradNum <> 'XAXX010101000' and T4.LicTradNum <> 'XEXX010101000' ) and T4.CardType=@tipoSN
--and (T4.UserSign not in (1,10)) and T4.CardType=@tipoSN
if @existe is not null
begin
set @error = 1
set @error_message = 'RFC ' + @RFC + ' ya existente como ' + @re + '. Verificar información'
end
END
Gracias @juliancab, hice el query un poco mas sencillo, me basé en el tuyo, quedo así.
declare @rfc nvarchar (13)
declare @existe varchar(13)
if @object_type = '2' and @transaction_type in ('A')
begin
select @rfc = a.LicTradNum
from OCRD a
where cardCode = @list_of_cols_val_tab_del
select @existe = b.licTradNum
from ocrd b
where b.licTradNum = @rfc and b.cardCode <> @list_of_cols_val_tab_del
and (b.LicTradNum <> (select u_rfcPermitido from dbo.[@RFC_PERMITIDOS]))
if @existe is not null
begin
Set @error = - 002
Set @error_message = 'Error - El valor ' +@RFC+ ' ya se encuentra registrado al menos en un Socio de Negocios'
end
end
solo me falta solucionar el tema del sub query para no poner código fijo, al tener solo un rfc en u_rfcPermitido me funciona bien, pero si agrego otro mas me falla la consulta.
(select u_rfcPermitido from dbo.[@RFC_PERMITIDOS])