Asignar valor a una variable en un procedimiento almacenado

16/11/2006 - 04:04 por Erik Martinez | Informe spam
hola a todos.

¿como se le asigna valor a una variable en un procedimientos almacenado?
necesito asignarle un valor a la variable EdadSD y lo estoy haciendo de la
siguiente manera:

CREATE PROCEDURE sp_CreFinSecLag
@IDUsuario int,
@EdadSD numeric(3,0)
as

set @EdadSD=(select CreIniSD from ConfPer where Eslaguna=1 and
IDUser=@IDUsuario)
select * from Siembras where
convert(nvarchar(10),
fechorasiefin+@EdadSD,101)=convert(nvarchar(10),getdate(),101)

y me da este error:

Error 156: Incorrect syntax near the keyword 'set'.


si tengo mal asigando ese valor a la variable por favor diganme como lo
puedo hacer.

muchisimas gracias.
 

Leer las respuestas

#1 Miguel egea
16/11/2006 - 08:35 | Informe spam
Tienes varios errores
Select @edad=CreIniSD From ConfPer where EsLaguna=1 andidUser=@idUsuario
en la segunda matarás tu rendimiento, no hay índice que soporte eso,si no
necesitas todos los datos, no pongas *, si la edad la tienes en años yo
cambiaría la sintaxis por algo así, te lo escribo de memoria, igual tiene
errores de sintaxis
Declare @fechafin smalldatatime
SET @Fecha=dateadd(year,-1*@edad,getdate())
Select @Fecha=cast(convert(nvarchar(10),@fecha,112) as smalldatetime)
Select * from Siembras where FecHorasiefin>= @fecha and
FecHoraSieFin<@fecha+1

El resultado debiera ser el mismo pero el rendimiento no tendrá nada que
ver, sobre todo si tienes índices por FecHoraSieFin y además son útiles.

Saludos
Miguel Egea

"Erik Martinez" <nadie@@microsoft.com> wrote in message
news:
hola a todos.

¿como se le asigna valor a una variable en un procedimientos almacenado?
necesito asignarle un valor a la variable EdadSD y lo estoy haciendo de la
siguiente manera:

CREATE PROCEDURE sp_CreFinSecLag
@IDUsuario int,
@EdadSD numeric(3,0)
as

set @EdadSD=(select CreIniSD from ConfPer where Eslaguna=1 and
IDUser=@IDUsuario)
select * from Siembras where
convert(nvarchar(10),
fechorasiefin+@EdadSD,101)=convert(nvarchar(10),getdate(),101)

y me da este error:

Error 156: Incorrect syntax near the keyword 'set'.


si tengo mal asigando ese valor a la variable por favor diganme como lo
puedo hacer.

muchisimas gracias.


Preguntas similares