2016-12-09 3 views
1

동일한 스냅 샷을 사용하는 두 명의 다른 스크립트 (나와 내 동료가 만든 스크립트)가 있습니다.SSIS에서 SQL 스냅 샷 삭제

16.00 (또는 오후 4시) 나를 코딩합니다. 스크립트 1 - 스냅 샷이있는 경우 스냅 샷을 삭제하고 새 스냅 샷을 생성하고 코드를 실행합니다.

04.00 (또는 오전 4시) Collegue 코드스크립트 2 - 스냅 샷이있는 경우 스냅 샷을 삭제하고 새로운 스냅 샷을 생성하고 코드를 실행합니다.

이 두 스크립트는 모두 저장 프로 시저 (SSIS 스크립트는 실제로 체인에서 일련의 저장 프로 시저를 실행하는 것 이상을 수행하지 않습니다) 용 SSIS 스크립트입니다.

스크립트 2는 문제없이 작동합니다. 스크립트 1 가져 오기 '스냅 샷을 삭제할 수 없습니다. 데이터베이스에 스냅 샷이 없거나 액세스 할 수 없습니다.'

SQL Studio에서 스크립트 1을 실행하면 완벽하게 작동하므로 잘못 입력 한 것이 없습니다.

두 SSIS 엔진 및 JOBS 엔진 모두에서 동일한 사용자가 실행 중입니다.

나는 이것에 대한 오류를 찾기 시작해야할지 모르겠다 ?? 어떤 제안?

------------- 편집 : 스크립트 ----------------

IF EXISTS(select NULL from sys.databases where name='Citybase_Snapshot') 
BEGIN 
    DROP DATABASE Citybase_Snapshot; 
END 

CREATE DATABASE CityBase_Snapshot ON 
(NAME = FastighetsBok_Data, FILENAME = 'S:\Snapshots\Citybase_Snapshot.ss') 
AS SNAPSHOT OF Citybase; 

을 추가 ------ ---------- 편집 : 오류 메시지가 추가되었습니다. ----------------------

아는 한 정상입니다 SQL Server에서 오류 메시지.

EXEC proc_..." failed with the following error: "Cannot drop the 
database 'Citybase_Snapshot', because it does not exist or you do not 
have permission.". 
+1

삭제하기 전에 스냅 샷이 있는지 확인하려면 추가하십시오. – TheGameiswar

+0

스크립트를 게시하는 것이 좋습니다. 이와 같은 메시지는 실행중인 코드와 관련하여 _very_ 소리가납니다 (즉, 원시 SQL 오류 메시지로 들어 본 적이 없습니다). 문제가 코드 어딘가에 있습니다. –

+0

스냅 샷이 있는지 확인하고 있습니다. 당연하지. : D 고마워. –

답변

0

대답은 내가 상상했던 것보다 더 간단했습니다.

SSIS 작업에 대한 SQL 서버에서 작업을 만들 때 실행중인 SSIS 스크립트에서 활성 사용자를 설정했지만 보안 사용자가있는 유일한 장소는 아닙니다.

SSIS 스크립트에서 실제로 설정 한 연결을 검사하여 데이터베이스에 연결하는 데 사용하는 사용자가 스냅 샷을 삭제할 수 있는지 확인해야합니다.

원형으로 쉽게 (잘못된 것을 알고있을 때).