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