Determine si el parámetro SP tiene un valor predeterminado en T-SQL

¿Hay alguna forma de determinar desde dentro de SQL Server (estoy en el FYI de 2012) si los parámetros de un SP tienen valores predeterminados? Existenotro trapos sobre esto, sin embargo, las sugerencias no parecen obtener esta información con precisión.

Aquí hay un par de cosas que he intentado;

select *
from sys.objects so join sys.parameters sp on so.object_id = sp.object_id
where so.type='P'
and so.name = 'someSp'

La consulta anterior devuelve una serie de columnas que suenan como si estuviera ladrando el árbol correcto (has_default_value, default_value entre ellas)pero estos no parecen variar si tengo un valor predeterminado en mi SP o no. (el valor de has_default siempre es 0, el valor predeterminado es siempre nulo)

exec sp_sproc_columns 'someSp'

Mismo trato el SP anterior devuelve una serie de columnas que incluyen NULLABLE e IS_NULLABLE; NULLABLE siempre es igual a 1 e IS_NULLABLE = YES, independientemente de mi contenido de SP.

Una nota; SQL Server Management Studio muestra claramente los metadatos asociados con cada parámetro SP.

He usado el Analizador de SQL para examinar lo que sucede cuando veo los parámetros de un SP en el Explorador de objetos de Management Studio. Al expandir la carpeta de parámetros, se ejecutan dos consultas. La primera consulta es un poco larga para pegar aquí (aunque lo haré si es útil). Contiene una columna llamada VALOR POR DEFECTO; Sin embargo, siempre es NULL por lo que puedo decir. La segunda consulta simplemente devuelve el cuerpo del SP; probablemente para salir a la ventana del editor de texto (aunque me temo que podría haber algún análisis dentro de mgmt studio!)

Para referencia / solo para asegurarme de que no estoy perdiendo mis canicas, he creado dos Sps sin sentido solo para pruebas. Parecen:

CREATE PROCEDURE TestDefaultSpValue_Default
@I          INT  = 2
AS
BEGIN
SET NOCOUNT ON;
SELECT @I
END

CREATE PROCEDURE TestDefaultSpValue_NoDefault
@I          INT
AS
BEGIN
SET NOCOUNT ON;
SELECT @I
END

Respuestas a la pregunta(3)

Su respuesta a la pregunta