Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/11/2011, 17:00
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 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