1

SQL2000を使用して他の顧客にSQL2008データを送信することに関心のあるカトマーがいます。現在、これは明らかに機能しないため、Server2000でデータをバックアップおよび復元できる「一般的な」バックアッププロセスを作成しようとしています。以上(SQL2000はすべてまたは顧客の中で最も一般的でない分母であるため)。現在、この方法でバックアップを生成しています(C#):

 Server server = new Server( GetServerConnection( serverName, userName, password ) );
 Backup backup = new Backup();
 backup.Action = BackupActionType.Database;
 backup.Database = GetDatabasePrefix() + databaseName;
 backup.Devices.AddDevice( fileName, DeviceType.File );
 backup.Initialize = true;

 backup.SqlBackup( server );

私の最初の質問は、データベースがSQL 2005または2008であっても、バックアップをSQL 2000として実行するように「強制」する方法はありますか?

また、データベースでbcpプロシージャを使用してテーブルをパッケージ化およびアンパッケージ化し、それらを一緒に圧縮することで、これを回避することを考えていました。zipプロセスでは、ヘッダーフラグを挿入して、「汎用」バックアップとして宣言します。これは合理的だと思われますか、それともこれを行うためのより簡単な方法がありますか?アプリケーションはサーバーに関係なく同じであるため、すべての列とテーブルは同じである必要があります。助けてくれてありがとう!

4

2 に答える 2

5

データのみを移植する場合、BCP またはカスタム SSIS パッケージは、再利用可能な最も可能性の高いオプションのように思えます。SSIS インポート/エクスポート ウィザードをのぞいてみてください。使い方は非常に簡単で、目的を達成できる可能性があります。

于 2010-02-10T20:03:07.660 に答える
2

新しいバージョンのSQLServerから古いバージョンにバックアップを復元することはできません。

SSMS2008からSSMS2000SQLスクリプトを生成できます。

  • SSMS2008で[ツール]->[オプション]を開きます
  • SQLServerオブジェクトエクスプローラー->スクリプトに移動します
  • 「サーバーバージョンのスクリプト」を2000に設定します
  • データベースを右クリックし、[タスク]->[スクリプトの生成]を選択します
  • データベース内のすべてのオブジェクトをスクリプト化します
  • 2000サーバーでスクリプトを実行します

次に、サーバーをリンクし、次のようにデータをコピーします。

insert ChefDb.dbo.MyTable from ChefServer.ChefDb.dbo.MyTable

または、 RedGate SQLDataCompareの購入を検討してください。

于 2010-02-10T19:57:06.830 に答える