2010-04-01 2 views

답변

1

기본적으로 sys.all_parameters에서 기본값을 사용할 수 있으며 실제로보기에는 default_value 열이 포함되어 있습니다. 하지만 불행히도 T-SQL 저장 프로 시저에는 사용되지 않습니다. MSDN는 말한다 :

SQL 서버는이 카탈로그 뷰의 CLR 개체에 대한 기본값으로 유지한다; 따라서이 열은 Transact-SQL 개체에 대해 항상 0의 값을 갖습니다. Transact-SQL 개체에서 매개 변수의 기본값을 보려면 sys.sql_modules 카탈로그 뷰의 정의 열을 쿼리하거나 OBJECT_DEFINITION 시스템 함수를 사용하십시오.

따라서 저장 프로 시저 매개 변수의 기본값을 검색하는 유일한 방법은 개체 정의를 구문 분석하는 것입니다.

0

유일한 기본 제공 방법은 sp_helptext를 사용하여 전체 프로 시저 텍스트를 보는 것입니다.

1

This article이 유용 할 수도 있지만 실제로는 기본 매개 변수를 결정하기 위해 루틴 정의를 구문 분석하는 샘플 코드를 제공합니다.

향후 릴리스에서 해결 될 것으로 예상됩니다. 이는 메타 데이터에 상당한 차이가 있으며 제공해서는 안되는 실제 이유가 없습니다.

또 다른 가능성은 정기적으로 발동을 분석하고 확장 된 속성을 자신과 매개 변수를 태그하는 것입니다 - 확장 된 속성에 대해 쿼리 훨씬 쉽게 그리고 당신은 자기 문서에 데이터베이스를 사용할 수 있습니다

USE [SandBox] 
GO 

/****** Object: StoredProcedure [dbo].[usp_Test] Script Date: 04/01/2010 20:23:11 ******/ 
SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

CREATE PROCEDURE [dbo].[usp_Test] 
@input INT = 0 
AS BEGIN 
SELECT @input AS [output] 
END 
GO 

EXEC sys.sp_addextendedproperty @name=N'TestXP', @value=N'testing' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'PROCEDURE',@level1name=N'usp_Test', @level2type=N'PARAMETER',@level2name=N'@input' 
GO