SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for 12月 14th, 2014

SQL Server のバックアップのリストアと互換性レベルの整理

leave a comment

SQL Server 2014 データベース エンジンの非推奨機能SQL Server ではバックアップのリストアに下位互換があり、リストアしようとするバックアップを取得した SQL Server のバージョンにも依存するのですが、上位のバージョンでは下位のバージョンのバックアップをリストすることが可能です。
上位互換はないため、新しいバージョンで取得したバックアップを下位のバージョンにリストアすることはできません。
また、デタッチ / アタッチシナリオを利用して、データベースを新しいバージョンの SQL Server にアタッチした場合、アタッチしたタイミングでデータベースの内部のバージョンアップが行われています。
そのため、新しいバージョンでアタッチしたデータベースを下位のバージョンの SQL Server にアタッチするということもできません。

新しいバージョンに移行をした際の、切り戻し方法としてはデータベースのバックアップ / リストア、デタッチ / アタッチではなく、データベースのインポート / エクスポートを用いて実施する必要があります。

基本的には直近三世代のバージョンの SQL Server のバックアップをリストアすることが可能となっており、それ以前の世代のバックアップについてはリストアをすることができません。

簡単にではありますが、バックアップ / リストアについてまとめてみたいと思います。

本投稿では、

  • SQL Server 2000
  • SQL Server 2005
  • SQL Server 2008 R2

で取得したバックアップを

  • SQL Server 2008 R2
  • SQL Server 2012
  • SQL Server 2014

でリストアするパターンについて記述しています。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 14th, 2014 at 11:19 am

Posted in SQL Server

Tagged with

SQL Server の TRUNCATE TABLE は何を実行しているか

leave a comment

テーブルのデータを瞬時に削除する方法として、TRUNCATE TABLE があります。

TRUNCATE TABLE (Transact-SQL)

DELETE との違いは以下になります。

DELETE ステートメントは、一度に 1 行ずつ削除し、削除した各行のエントリをトランザクション ログに記録します。  TRUNCATE TABLE は、テーブル データを格納するのに使用するデータ ページの割り当てを解除することによってデータを削除し、ページの割り当ての解除だけをトランザクション ログに記録します。

ということで、TRUNCATE TABLE が何をやっているかをざっくりと。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 14th, 2014 at 12:10 am

Posted in SQL Server

Tagged with