4

実際のシナリオ: 複製データベースがあり、どのテーブルのデータが元のデータベースから移動されていないかを知りたいです。次に、オリジナルから複製データベーステーブルを作成したいと思います。

次のスクリプトを作成して、部分的な解決策 (つまり、空のテーブルを見つける) を達成しました。

SELECT
    DBDupl.[dbo].sysobjects.Name, DBDupl.[dbo].sysindexes.Rows FROM
    DBDupl.[dbo].sysobjects
    INNER JOIN DBDupl.[dbo].sysindexes
    ON DBDupl.[dbo].sysobjects.id = DCT_SOURCE_QA.[dbo].sysindexes.id WHERE
    type = 'U'
    AND DBDupl.[dbo].sysindexes.IndId < 2 and rows= '0'
     EXCEPT

SELECT
    DBOrig.[dbo].sysobjects.Name, DBOrig.[dbo].sysindexes.Rows FROM
    DBOrig.[dbo].sysobjects
    INNER JOIN DBOrig.[dbo].sysindexes

    ON DBOrig.[dbo].sysobjects.id = DBOrig.[dbo].sysindexes.id WHERE
    type = 'U'
    AND DBOrig.[dbo].sysindexes.IndId < 2 and rows= '0'

ここで、空のテーブルにデータを入力したいと考えています。両方のことを行うための単一のクエリはありますか。つまり、(1) どのテーブルにデータを入力する必要があるかを調べることと (2)。DBOrig から DBDupl にデータを入力します。上記のスクリプトで (1) を達成しましたが、手動でデータを挿入したくありません。

4

2 に答える 2

0

データベースの正確なコピーが必要ですか? メインのバックアップと別の名前での復元ではないのはなぜですか?

不可能な場合は、SSIS を使用してデータなどを移動できます。

insert into destDB.dbo.mytable
select * sourcedb.dbo.mytable

スクリプトを使用して空のテーブルをループし、動的 ​​SQL を実行して上記のコマンドを実行できます

于 2013-07-19T12:13:36.310 に答える