SQL Server 2008에서 SQL Server 2000 백업 파일 실행

SQL Server 2008에서 SQL Server 2000 백업 파일 실행

SQL Server 2000 .bak 파일을 SQL Server 2008로 복원했습니다.

--RESTORE FILELISTONLY
--FROM DISK = 'D:\DBHarshal\full backup august 6.BAK'
--ALTER DATABASE EPICSms
--SET SINGLE_USER WITH
--ROLLBACK IMMEDIATE

RESTORE DATABASE EPICSms
FROM DISK = 'D:\DBHarshal\full backup august 6.BAK'
WITH MOVE 'EPICSms_Data' TO 'C:\EPICSms_Data.mdf',
MOVE 'EPICSms_Log' TO 'C:\EPICSms_Log.mdf'


 ,REPLACE

마스터 데이터베이스를 사용할 때 사용하도록 요청했는데 백업을 로드할 수 있었지만 이제 문제는 데이터가 있는 테이블만 볼 수 있고 저장 프로시저는 볼 수 없다는 것입니다.

답변1

저장된 프로시저를 내보내고 가져옵니다. 이전에도 같은 문제가 있었던 것으로 기억하는데 최신 SQL 서버에서는 해결된 것 같습니다.

작업을 더 쉽게 하기 위해 2k8 관리를 2000 SQL에 연결하겠습니다.

답변2

여전히 SQL Server 2000 데이터베이스 백업을 SQL Server 2008로 복원할 수 없고 SQL Server 2000 데이터베이스에 연결할 수 있는 경우 SQL Server 2008에서 사용할 수 있는 "SQL Server 스크립트 생성 마법사"를 사용하는 것이 좋습니다.

상황에 따라 다음과 같이 이 도구를 사용할 수 있습니다. (1) 모든 개체(테이블, 프로세스, 로그인, 권한 등 - 선택적으로 제어할 수 있음)를 스크립팅하고 즉시 실행합니다. (2) 데이터(ETL)를 SSIS 패키지로 스크립팅합니다.

다음 단계: (3) 데이터 SSIS 패키지를 엽니다. (4) 모든 외래 키 제약 조건을 "WITH NOCHECK"로 설정하는 ETL 이전에 완료할 SQL 실행 작업을 추가합니다. (5) 이후에 완료할 SQL 실행 작업을 추가합니다. 모든 외래 키 제약 조건을 "WITH CHECK CHECK"로 설정하는 ETL

(1) 단계에서 생성한 SQL Server 2008 데이터베이스에서 (4) 및 (5) 단계에 대한 TSQL을 생성하는 코드는 다음과 같습니다.

SELECT 
    'ALTER TABLE [' + SCHEMA_NAME(schema_id) + '].[' + OBJECT_NAME(parent_object_id) + ']' + ' NOCHECK CONSTRAINT ' + OBJECT_NAME(OBJECT_ID) AS ddlNoCheck
    ,'ALTER TABLE [' + SCHEMA_NAME(schema_id) + '].[' + OBJECT_NAME(parent_object_id) + ']' + ' WITH CHECK CHECK CONSTRAINT ' + OBJECT_NAME(OBJECT_ID) AS ddlWithCheckCheck
FROM
    sys.objects
WHERE
    type_desc = 'FOREIGN_KEY_CONSTRAINT'
ORDER BY
    SCHEMA_NAME(schema_id)
    , OBJECT_NAME(parent_object_id)
    , type_desc, OBJECT_NAME(OBJECT_ID)

관련 정보