문제

SQL Server에서 SP 또는 UDF를 수정하려는 경우 쿼리 창에 개체 Alter Query가로드됩니다. 이 쿼리는 시스템 테이블에 액세스 할 수 있도록 Alter 문을 어딘가에 저장할 수 있습니까? Syscomments에는 몇 가지 물체가 있지만 전부는 아닙니다.

감사

도움이 되었습니까?

해결책

Syscomments를 사용하지 마십시오, 왜냐하면 syscomments.text ~이다 nvarchar(4000) 결과적으로 더 길은 것을 잘라냅니다.

사용 sys.sql_modules 왜냐하면 definition ~이다 nvarchar(max), 긴 코드를 자르지 않습니다.

주어진 절차,보기 또는 기능의 텍스트를 보려면 이것을 사용하십시오.

SELECT * FROM sys.sql_modules WHERE object_id=object_id('YourProcedure')

이를 사용하여 절차,보기 또는 기능의 이름, 유형 및 텍스트를 얻으십시오.

SELECT DISTINCT
    o.name AS Object_Name,o.type_desc, m.definition
    FROM sys.sql_modules        m 
        INNER JOIN sys.objects  o ON m.object_id=o.object_id
    WHERE m.object_id=object_id('CPT_SP_IRA_ComboBox_IncidentStatus')

다른 팁

당신이 무엇을 요구하는지 확실하지는 않지만 다음 쿼리로 저장된 절차를 볼 수 있습니다.

SELECT SO.Type,SO.Name,SC.Text
FROM sysobjects SO (NOLOCK)
INNER JOIN syscomments SC (NOLOCK) on SO.Id = SC.ID
AND SO.Type = 'P'
ORDER BY SO.Name

객체 유형이 다른 경우를 살펴보십시오. sys.sysobjects 다른 유형의 경우.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top