Microsoft SQL Server 2014を使用して、テーブル構造の再構築を必要とする操作を実行しています。我々は2つの方法に我々のアプローチを絞り込んていますSQL Serverはどのように内部的にテーブルの名前を変更しますか?
- は、新たに「一時的な」テーブル(未
#TempTable
一種)を作成し、一時テーブルにデータをダンプし、オリジナルを削除して、再びデータをダンプします。 - 既存のテーブルの名前を変更し、新しいテーブルを作成して、tempからnewにデータをダンプします。
私の同僚は#1を選択することが理想的だと主張しています。しかし、#1には#2の2倍の時間がかかると確信しています(大量のストレージを消費するBLOBデータがあるため)。同僚は、内部的にテーブルの名前を変更すると、SQL Serverは新しいテーブルを作成し、データをダンプすると主張しています。私は非常に同意しない。私は、SQL Serverが単に既存のテーブルの名前を変更することを確信しています。これがどのように実際に機能しているかを検索しながら、私は何の情報も見つけることができません。
SQL Server内部でテーブルの名前を変更する方法はありますか。新しいテーブルを作成し、データをダンプしてから、古いテーブルを削除しますか?それとも単に名前を変更するのですか?
一時テーブルでは、接続のためだけに良好であり、範囲は、すべてのデータを失う可能性があるので、私はこのルートを行くだろうなに限定され#tempTableを意味する場合。 – scsimon
@scsimonいいえ、SQL Serverの "Temp Table"の定義はありません。 –
の場合、オプション2はそのままです。私はドキュメントを見つけることができませんが、最初のロジックに近いものは聞いたことがなく、なぜSQL Serverがこのように動作するのか想像できません。 – scsimon