Dar formato a una cadena en un Trigger

18/07/2003 - 13:29 por COCI | Informe spam
¡Hola a todos!,
Estoy haciendo un trigger en el cual, abro un cursor y cargo una variable
con el contenido de un campo de 3 dígitos, pero si esta vacío o no tiene
rellenos los 3 dígitos, quiero que me rellene con ceros las posiciones
vacías.
con visual basic yo lo hago así: Var = Format(campo,"000") y funciona
perfectamente, pero cómo lo puedo hacer en SQL.

En el trigger lo estoy haciendo así:

Declare @X1 char(3)
Declare c_param cursor for select campo from t2para
fetch c_param into @X1

Estaba intentando ponerlo así:
fetch c_param into format(@X1,"000")
pero me da error, por que el format así, parece que no existe en SQL

¿cómo le doy formato al contenido de la variable @X1?

Muchas gracias,
Saludos

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
18/07/2003 - 13:38 | Informe spam
Prueba con
RIGHT('000' + @X1)

De todos modos, es muy probable que lo que estás haciendo con un cursor
se pueda hacer sin él (si los puedes evitar, mejor que mejor), o sea que si
nos comentas lo que intentas hacer con el susodicho cursor, tal vez te
podamos ayudar a evitarle (si nos mandas el código, mejor que mejor)



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/defaul.../70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"COCI" escribió en el mensaje
news:#4gMH$
¡Hola a todos!,
Estoy haciendo un trigger en el cual, abro un cursor y cargo una variable
con el contenido de un campo de 3 dígitos, pero si esta vacío o no tiene
rellenos los 3 dígitos, quiero que me rellene con ceros las posiciones
vacías.
con visual basic yo lo hago así: Var = Format(campo,"000") y funciona
perfectamente, pero cómo lo puedo hacer en SQL.

En el trigger lo estoy haciendo así:

Declare @X1 char(3)
Declare c_param cursor for select campo from t2para
fetch c_param into @X1

Estaba intentando ponerlo así:
fetch c_param into format(@X1,"000")
pero me da error, por que el format así, parece que no existe en SQL

¿cómo le doy formato al contenido de la variable @X1?

Muchas gracias,
Saludos


Respuesta Responder a este mensaje
#2 COCI
18/07/2003 - 14:25 | Informe spam
Muchas gracias, Carlos

Te explico lo que quiero hacer, tengo un tabla de artículos, otra de
almacenes y otra de parámetros.
Entonces quiero que cada vez que se inserte un nuevo artículo en el que el
stock sea distinto de 0, en la tabla de almacenes, añada un registro
indicando el código de barras del artículo, el stock y el almacén en el que
entra.
El almacén lo tengo que coger de la tabla de parámetros (para eso abro el
cursor), el problema es que el campo almacén puede esta nulo, tener uno, dos
o tres dígitos. Entonces yo quiero que si esta nulo o én blanco el almacén
sea '000', y si tiene uno o dos dígitos, lo que falta lo rellene con ceros
delante, es decir que si tenía un 2, ponga '002', si tenía un 23 ponga un
'023' (para esto quería utilizar lo del format, como lo utilizo en visual
basic (format(variable,"000")).

Te pongo el Trigger que estoy haciendo:
CREATE TRIGGER [ART_Almac] ON [dbo].[ARTI]
FOR INSERT AS
begin
Declare @Barras nvarchar(12),@almac char(3)
Declare @Stock int
Declare c_param cursor for select almacen from param

if @@rowcount = 0 return

if @stock<>0
begin
select @stock = stock from inserted
select @barras = barras from inserted
fetch c_param into @almac

/* AQUÍ ES DONDE QUIERO DARLE EL FORMATO A LA VARIABLE @almac */

Insert into almac
(barras,almacen,stock)
values(@barras,@almac,@stock)
end
End


P.D. se puede decir que acabo de empezar a hacer trigger, por lo cual no
ando muy fino

Gracias, otra vez
Saludos,
Oskar
Respuesta Responder a este mensaje
#3 COCI
21/07/2003 - 11:10 | Informe spam
Muchisimas gracias, Carlos

Lo he probado y funciona muy bien
Saludos,
Oskar
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida