갖는 간단한 저장 프로 시저를 다음과 같이 매개 변수 : TSQL은
CREATE PROCEDURE [dbo].[ProcedureName]
@p1IntMandatory INT ,
@p2IntDefValueZero INT = 0 ,
@p3VarcharWzValue VARCHAR(MAX) = 'abc' ,
@p4DateTimeNullable DATETIME = NULL ,
@p5IntOutWzValueZero INT = 0 OUTPUT
AS
BEGIN
SET NOCOUNT ON;
END;
특별히 저장 프로 시저 매개 변수 메타 데이터 "has_default_value", "DEFAULT_VALUE"와 "IS_NULLABLE"열을 얻기 위해이 문을 실행하는 경우 , 나는 그들의 가치가 무효하다는 것을 알았다.
name has_default_value default_value is_nullable
@p1IntMandatory 0 NULL 1
@p2IntDefValueZero 0 NULL 1
@p3VarcharWzValue 0 NULL 1
@p4DateTimeNullable 0 NULL 1
@p5IntOutWzValueZero 0 NULL 1
특별히이 3 열 저장 프로 시저에 대해 유효한 메타 데이터를 얻을 수있는 권리 방법이 있나요 :
SELECT *
FROM sys.parameters
WHERE object_id = OBJECT_ID('[dbo].[ProcedureName]');
다음은 결과입니다?
봐에서 ... 한 단계 더 그것을 복용 : https://msdn.microsoft.com/en-us/library/ms173796.aspx에서 [문서] (HTTPS에서 – McNets
: //msdn.microsoft.com/en-us/library/ms176074.aspx) : SQL Server는이 카탈로그 뷰의 CLR 개체에 대한 기본값 만 유지합니다. 따라서 Transact-SQL 개체의 경우이 열의 값은 0입니다. Transact-SQL 개체에서 매개 변수의 기본값을 보려면 sys.sql_modules 카탈로그 뷰의 정의 열을 쿼리하거나 OBJECT_DEFINITION 시스템 함수를 사용합니다. –
sys.sql_modules 또는 유사하게 정의를 구문 분석해야합니다. – scsimon