-9

スクリプトを使用して (ただし、データのインポート/エクスポートを使用せず、バックアップの復元を使用せず、データベースのコピーを使用せずに )、同じサーバー上のあるデータベースから同じサーバー上の別のデータベースに完全なテーブル (スキーマとデータ) をコピーするにはどうすればよいですか?

上でイタリック体で表示したことはすでに試しました。ただし、ユーザー権限などにより、これらの方法を使用できませんでした。

おそらくこれはうまくいくでしょう:

 SELECT *
 INTO newdb.dbo.newtable
 FROM olddb.dbo.oldtable

しかし、これをすべてのテーブル (約 100 テーブル) に適用したいと思います。

4

3 に答える 3

8

あなたが本当にシステム管理者なら、バックアップと復元の何が問題なのかわかりません。

BACKUP DATABASE <DatabaseName, sysname, DatabaseName>
TO DISK=N'<backup_location, varchar, BackupLocation>.bak'
WITH INIT, FORMAT, COMPRESSION, COPY_ONLY

RESTORE DATABASE <NewDatabaseName, sysname, NewDatabaseName>
FROM DISK = N'<backup_location, varchar, BackupLocation>\
    <DatabaseName, sysname, DatabaseName>.bak'
WITH 
    MOVE '<DataFileName, sysname, DataFileName>' TO '<DataMDFPath, nvarchar(600), DataMDFPath>',
    MOVE '<LogFilePath, sysname, LogFilePath>' TO '<LogLDFPath, nvarchar(600), LogLDFPath>',
    REPLACE;

ここで、ほら、私もあなたのためにそれをテンプレート化しました。

于 2013-07-03T19:10:49.387 に答える
-4

Microsoft SQL Server Management Studio を使用していますか? もしそうなら...


Script Table As...オプションを使用して、 CREATE TOオプションの下のNew Query Editor Formを選択できます。

そこから、テーブル名または対象のデータベースのいずれかを変更できるはずです。

これと併せて、https ://stackoverflow.com/a/7515236/2543917にある情報を使用して、データを移動できます。

実際のコード例がさらに必要な場合は、お知らせください。提供できます。

于 2013-07-03T18:16:40.650 に答える