Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

saber el valor de un parametro Transact SQL

Estas en el tema de saber el valor de un parametro Transact SQL en el foro de SQL Server en Foros del Web. buenas noches compañeros.. tengo una consulta deberia ser algo sensillo pero no se hacerlo... me encuentro con que debo controlar q es lo q trae ...
  #1 (permalink)  
Antiguo 05/11/2011, 19:47
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 7 meses
Puntos: 5
saber el valor de un parametro Transact SQL

buenas noches compañeros.. tengo una consulta deberia ser algo sensillo pero no se hacerlo... me encuentro con que debo controlar q es lo q trae un paramentro. en Transact SQL, procedimiento almacenado.. quiero saber si @dias trae solo numeros. y nada mas. que no vengan letras ni comas puntos . me explico? como puedo hacerlo... muchas gracias espero me puedan dar una mano pronto asi no me tranco con el projecto..
  #2 (permalink)  
Antiguo 07/11/2011, 08:58
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: saber el valor de un parametro Transact SQL

isnumeric(), esta funcion te regresa 1 si tu campo solo contiene numeros y regresa 0 si contiene cualquier valor varchar.

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 09/11/2011, 17:00
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Respuesta: saber el valor de un parametro Transact SQL

Antes de implementar un código que te diga si el parámetro @dias tiene solo números, evalúa la posibilidad de definirlo como numeric, de esta forma, en caso de valores alfanuméricos el motor ya se encarga de lanzar una excepción que interrumpe la ejecución del procedimiento. La función isnumeric() es útil para los casos donde @días es tipo varchar pero además el procedimiento debe decidir entre un proceso u otro en función de un valor numérico o alfanumérico.

Código:
create procedure p1 (@dias numeric(8))
as
begin
select @dias
end
go

exec p1 '1' --ejecución normal
go
exec p1 'a' --el motor da error y finaliza el proceso
go

--o bien

create procedure p2(@dias varchar(10))
as
begin
if isnumeric(@dias)=1
 select 'numerico'
else
 select 'alfanumerico'
end
go

--se ejecuta un código diferente en función del valor
exec p2 '1'
go
exec p2 'a'
go
Saludos
  #4 (permalink)  
Antiguo 10/11/2011, 20:01
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 7 meses
Puntos: 5
Respuesta: saber el valor de un parametro Transact SQL

muchas gracias a ambos por sus datos.. en un comienzo queria saber que significaban los valores devueltos por isnumeric como dices tu libras.. me es muy bueno saber que si devuelve 0 es porque no es lo que busco... muchas gracias a ambos igualmente.. este espacio me es muy util para aprender todos esos temas que quedan colgados en clases

Etiquetas: parametro, procedimiento, sql, transacciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:41.