it-swarm-ko.tech

SQL Server에서 가장 최근에 수정 한 저장 프로 시저를 빠르게 식별 할 수있는 방법

수정 된 저장 프로 시저를 DEV SQL Server 2005 데이터베이스 인스턴스에서 TEST 인스턴스로 수동으로 마이그레이션해야합니다. 마이그레이션중인 변경 사항을 제외하고 데이터베이스에는 동일한 스키마가 있습니다. TEST 인스턴스로 마이그레이션하기 위해 DEV 데이터베이스에서 수정 된 저장 프로 시저를 어떻게 신속하게 식별 할 수 있습니까?

필자는 일부 시스템 테이블에 대해 쿼리를 작성하여 저장 프로 시저 유형의 데이터베이스 객체를보고 마지막으로 수정되거나 컴파일 된 데이터를 기준으로 정렬 할 수는 있지만 확실하지 않습니다. 어쩌면 누군가가 내게 지적 할 수있는 일종의 무료 유틸리티가있을 수 있습니다.

미리 감사드립니다.

단발

22
Bob OMalley

더 이상 권장하지 않는 sysobjects를 사용하는 대신 sys.procedures를 사용하십시오.

select name,create_date,modify_date
from sys.procedures
order by modify_date desc

where 절을 직접 수행 할 수 있지만 수정 날짜 순서대로 내림차순으로 나열됩니다

59
SQLMenace

밥 오말리 (Bob OMalley)는 아마도 오래 전에 그의 문제를 해결했을 것입니다.

스크립트가 최적의 결과를 얻지 못하는 특별한 경우가 있습니다.

하나는 개발 환경에서 저장 프로 시저 또는 다른 개체를 삭제하는 것입니다. 개체가 더 이상 존재하지 않기 때문에 시스템보기를 사용하여이를 포착하지 못합니다.

또한이 접근 방식이 권한 및 이와 유사한 변경 사항에 적용 할 수 있는지 잘 모르겠습니다.

그러한 경우에는 아무것도 확인하지 않고 일부 타사 도구를 사용하는 것이 가장 좋습니다.

비슷한 작업에 과거에 ApexSQL Diff 을 성공적으로 사용했으며 1000 개 이상의 개체가있는 큰 데이터베이스에서 실제로 잘 작동했지만 여기 또는 기본적으로 다른 언급 된 SQL Compare에서는 잘못 될 수 없습니다 시장에 존재하는 도구.

면책 조항 : 나는 여기서 언급 한 공급 업체와 제휴하지 않지만 내가 일하는 회사에서 두 도구 세트 (Apex 및 RG)를 모두 사용합니다.

11
Ron Biggs

이 쿼리를 실행하여 지난 x 일 동안 수정 된 모든 저장 프로 시저를 찾을 수 있습니다.

DECLARE @X INT = 30
SELECT name
FROM sys.objects
WHERE type = 'P'
    AND DATEDIFF(D,modify_date, GETDATE()) < @X
10
Jason Stevenson

무료는 아니지만 Red-Gates SQL Compare tool 을 사용해 본 경험이 있습니다. 과거에는 나를 위해 일했습니다. 현재 사용 가능한 문제를 해결하기에 충분한 무료 평가판이 있습니다.

2
Craig

다음 코드 스 니펫을 사용할 수도 있습니다

USE AdventureWorks2008;

GO

SELECT SprocName=name, create_date, modify_date

FROM sys.objects

WHERE type = 'P' 

AND name = 'uspUpdateEmployeeHireInfo'

GO
1
RBS

다음과 같은 유형의 쿼리를 사용하여 수정 된 저장 프로 시저를 찾을 수 있습니다. 필요에 따라 7을 사용할 수 있습니다.

SELECT name
    FROM sys.objects
    WHERE type = 'P'
        AND DATEDIFF(D,modify_date, GETDATE()) < 7
0
RBS

몇 가지 데이터베이스 비교 도구가 있습니다. 내가 항상 좋아하는 것은 Red Gate 에 의한 SQLCompare입니다.

다음을 사용하여 시도 할 수도 있습니다.

SELECT name
FROM sys.objects
WHERE modify_date > @cutoffdate

ALTER를 사용하면 날짜가 올바르게 업데이트되지 않았기 때문에 SQL 2000에서는 항상 작동하지 않았지만 2005 년에는 문제가 해결되었다고 생각합니다.

그래도 SQL 비교 도구를 사용하므로 해당 방법을 100 % 보증 할 수 없습니다

0
Tom H