5

SQL Server Generate Script は、詳細オプションの [スクリプトを作成するデータの種類] の [データのみ] オプションを使用して、テーブル内のデータのスクリプトを作成する優れた仕事をします。ただし、生成されたスクリプトには、rowid() や整数 ID などのすべての識別子も含まれます。当然のことながら、これは参照整合性のためですが、そのような列を除外する方法はありますか?

4

2 に答える 2

2

SSMS 自体にはありません。

「グリッド結果からスクリプトを生成する」オプションを備えた無料のSSMS ツール パックなどのサード パーティ製ツールを使用できます。そのため、INSERT を生成できますSELECT col1, col3, col6 FROM MyTable(一部の列をスキップします)。

役に立つかもしれません...

ここに画像の説明を入力

于 2011-02-16T19:27:59.347 に答える
2

SQL Server でこれを行う方法はないようですが、簡単な回避策は、初期スクリプトを作成し、それを使用して一時テーブルを作成することです。次に、不要な列を削除し、一時テーブルを使用して残りの列の SQL ステートメントを生成できます。

Eventsテーブルをコピーしたいが、含めたくないとしましょうid:

  • [タスク] > [スクリプトの生成] に移動し、 から SQL Server スクリプトを生成しますEvents。「詳細」オプションで、データとスキーマの両方をコピーしていることを確認してください。また、主キーまたは外部キーのスクリプトを作成していないことも確認してください (SQL スクリプトには列が表示されますが、一時テーブルから列をすばやく簡単に削除できます)。
  • 生成された SQL スクリプトをテキスト エディターで開き、検索と置換を使用してテーブルの名前を変更しますEventsEventsTemporary
  • SQL Server でこのスクリプトを使用して、EventsTemporaryテーブルを作成およびシードします。など、このテーブルからコピーしたくない列を削除しますid
  • テーブルから 2 つ目のスクリプトを生成しEventsTemporaryますが、今回はスキーマなしで「データ」をコピーするだけです。この新しい SQL スクリプトをテキスト エディターで開き、テーブルの名前を次のように変更します。Events
  • EventsSQL Server の 2 番目のスクリプトを使用して、データを実際のテーブルにインポートします。
于 2019-07-24T21:13:40.820 に答える