0

データベースを再作成するスクリプトを生成するときに、「ID」列を適切に処理する方法を見つけようとしています。

このためにスクリプトを生成する必要がある本来の理由は、SQL データベースを古いバージョンに「ダウングレード」する必要があるためです。データベース (v10.5) のすべてが古いバージョン (v10.0) と互換性があることはわかっています。私が直面している問題は、データベースをコピーする 3 つの異なる方法のうち、元の ID フィールド (ID) を維持できないという事実で常に失敗することです。

私のすべてのテーブルには、最初の列がありますID: Int = PK & Identity。また、テーブルがこの列で完全に連続していない場合も多くあります。たとえば、1、2、3、5、8、12、13 などです。これは単に、これらのレコードが過去に削除されたためです。しかし、元のID番号を以前と同じ順序で再挿入することは不可能のようです...

では、サーバー A からサーバー B にデータベース全体を (バックアップ/復元なしで) コピーするにはどうすればよいでしょうか? 注: Management Studio から両方のサーバーの両方のデータベースに接続できます。また、宛先サーバーは私のものではなく、共有ホスト DB であり、自分のデータベースにしかアクセスできません。宛先サーバーの設定を変更する権限がありません。

私は次のことを試しました:

  • データベース全体のスクリプトを生成するオプション
  • データベースのエクスポート オプション
  • データベースのバックアップ/復元 - バージョンの不一致による失敗

すべてのテーブルで ID 仕様を一時的に「無効」にし、データを挿入してから、ID を再度オンにする必要があると思います。しかし、データベース構造を操作するためのスクリプトを書くのは恐ろしいことです。データそれ自体、私はできます。しかし、データベース構造を操作するためにツールを使用することに慣れてしまったので、スクリプトを操作するのに時間をかけたことさえありませんでした。

4

1 に答える 1