SQL Server Generate Script は、詳細オプションの [スクリプトを作成するデータの種類] の [データのみ] オプションを使用して、テーブル内のデータのスクリプトを作成する優れた仕事をします。ただし、生成されたスクリプトには、rowid() や整数 ID などのすべての識別子も含まれます。当然のことながら、これは参照整合性のためですが、そのような列を除外する方法はありますか?
2448 次
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 スクリプトをテキスト エディターで開き、検索と置換を使用してテーブルの名前を変更します
Events
。EventsTemporary
- SQL Server でこのスクリプトを使用して、
EventsTemporary
テーブルを作成およびシードします。など、このテーブルからコピーしたくない列を削除しますid
。 - テーブルから 2 つ目のスクリプトを生成し
EventsTemporary
ますが、今回はスキーマなしで「データ」をコピーするだけです。この新しい SQL スクリプトをテキスト エディターで開き、テーブルの名前を次のように変更します。Events
Events
SQL Server の 2 番目のスクリプトを使用して、データを実際のテーブルにインポートします。
于 2019-07-24T21:13:40.820 に答える