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) すべての外部キー制約を「WITH CHECK CHECK」に設定する ETL の後に完了する SQL 実行タスクを追加します

手順 (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)

関連情報