Określ, czy parametr SP ma wartość domyślną w języku T-SQL

Czy jest jakiś sposób na określenie z poziomu SQL Server (jestem w 2012 FYI), czy parametry SP mają wartości domyślne? Tam sąinny wątki w tej sprawie jednak sugestie nie wydają mi się dokładnie informować.

Oto kilka rzeczy, które próbowałem;

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

Powyższe zapytanie zwraca pewną liczbę kolumn, które brzmią tak, jakbym szczekał w prawym drzewie (has_default_value, default_value wśród nich)ale te nie wydają się różnić, czy mam wartość domyślną w SP, czy nie. (Wartość has_default ma zawsze wartość 0, wartość default_value ma zawsze wartość null)

exec sp_sproc_columns 'someSp'

Ta sama umowa; powyższy SP zwraca liczbę kolumn, w tym NULLABLE i IS_NULLABLE; NULLABLE jest zawsze równe 1 i IS_NULLABLE = YES, niezależnie od zawartości SP.

Notka; Studio zarządzania SQL Server wyraźnie wyświetla metadane związane z każdym parametrem SP.

Użyłem programu SQL Profiler do sprawdzenia, co się dzieje, gdy przeglądam parametry SP w Eksploratorze obiektów Management Studio. Po rozwinięciu folderu parametrów uruchamiane są dwa zapytania. Pierwsze zapytanie jest trochę za długie na wklejanie tutaj (chociaż zrobię to, jeśli będzie pomocne). Zawiera kolumnę o nazwie WARTOŚĆ DOMYŚLNA; jednak zawsze jest NULL, o ile wiem. Drugie zapytanie po prostu zwraca treść SP; przypuszczalnie do wyjścia do okna edytora tekstu (choć obawiam się, że w mgmt studio może się zdarzyć parsowanie!)

Dla odniesienia / aby upewnić się, że nie tracę swoich kul, stworzyłem dwa bezsensowne Sps tylko do testowania. Wyglądają na:

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

questionAnswers(3)

yourAnswerToTheQuestion