raiserror

27/06/2005 - 17:29 por guillermo | Informe spam
Tengo el siguiente trigger:

declare @st_codigo varchar(40),
@total_ubica cantidad,
@stock cantidad,
@stock_string varchar,
@total_ubica_string varchar

select @st_codigo=st_codigo from inserted

select @total_ubica=sum(ub_cantidad) from Ubicaciones
where st_codigo=@st_codigo

select @stock=st_stock from Stock
where st_codigo=@st_codigo

if @total_ubica>@stock
begin
SELECT @stock_string=CONVERT(varchar(20),@stock)
SELECT @total_ubica_string=CONVERT(varchar(20),@total_ubica)
RAISERROR (La suma es: %s y no debe superar %s ',16,
1,@total_ubica_string,@stock_string)
ROLLBACK TRANSACTION
end

El problema es que cuando se produce el error, es decir @total_ubica>@stock
lo cual lo detecta perfectamente, en el mensaje de error solo me aparece el
primer dígito de cada parámetro del raiserror. o sea el primer dígito de
@total_ubica_string y el primer dígito de @stock_string en lugar de aparecer
el número completo.
Alguien podría decirme que está pasando?
Desde ya muchas gracias

Guillermo
 

Leer las respuestas

#1 Alejandro Mesa
27/06/2005 - 17:45 | Informe spam
Guillermo,

Debes poner la longitud cuando declaras esas variables, de lo contrario sql
server las toma como longitud 1.

@stock_string varchar,
@total_ubica_string varchar




AMB


"guillermo" wrote:

Tengo el siguiente trigger:

declare @st_codigo varchar(40),
@total_ubica cantidad,
@stock cantidad,
@stock_string varchar,
@total_ubica_string varchar

select @st_codigo=st_codigo from inserted

select @total_ubica=sum(ub_cantidad) from Ubicaciones
where st_codigo=@st_codigo

select @stock=st_stock from Stock
where st_codigo=@st_codigo

if @total_ubica>@stock
begin
SELECT @stock_string=CONVERT(varchar(20),@stock)
SELECT @total_ubica_string=CONVERT(varchar(20),@total_ubica)
RAISERROR (La suma es: %s y no debe superar %s ',16,
1,@total_ubica_string,@stock_string)
ROLLBACK TRANSACTION
end

El problema es que cuando se produce el error, es decir @total_ubica>@stock
lo cual lo detecta perfectamente, en el mensaje de error solo me aparece el
primer dígito de cada parámetro del raiserror. o sea el primer dígito de
@total_ubica_string y el primer dígito de @stock_string en lugar de aparecer
el número completo.
Alguien podría decirme que está pasando?
Desde ya muchas gracias

Guillermo



Preguntas similares