Loading...

We've detected that your browser language is Chinese. Would you like to visit our Chinese website? [ Dismiss ]
By: Emma

 

 

SQL Serverデータベース名を変更する3つの安全な方法

SQL Serverのデータベース名を変更する理由は複数存在します。命名ミスの修正、プロジェクトリブランドへの対応、環境整理などが挙げられます。手順自体は単純ですが、単なるラベルの変更だけではない点に注意が必要です。

本ガイドではSQL Serverのデータベース名変更に対応する3種類の手法を解説します。SSMSのGUI操作、T-SQLコマンドの実行、デタッチ&アタッチ方式です。それぞれ適したシナリオが異なるため、自身の状況に合わせて選択可能です。

SQL Serverのデータベース名は変更可能か

はい、SQL Serverはデータベース名の変更に対応しています。名前を変更すると、オブジェクトエクスプローラーとsys.databasesに表示される論理名が更新されます。以降のすべてのクエリや管理作業は新しい名称を使用するようになります。

ただし、自動的に変更されない要素がいくつか存在します。

  • ディスク上の物理ファイル(.mdfおよび.ldf)は元のファイル名を維持する
  • 接続文字列、ハードコードされたスクリプト、リンクサーバー参照は古い名称のまま残るため、手動で更新する必要がある
注記:SQL Serverはデータベース名変更時に排他ロックを要求するため、作業中は他ユーザーの接続を遮断する必要があります。

SQL Serverデータベース名の変更手順

SQL Serverのデータベース名変更には複数の手法があります。論理名のみ変更するか、物理ファイル名も併せて変更するかによって適切な方法を選びます。

方法1:SSMSを使用してデータベース名を変更

管理コンソールに直接アクセスでき、コード記述よりGUI操作を優先する場合はSSMSが最速の手段です。

  1. SSMSを起動し、対象のSQL Serverインスタンスに接続します。
  2. オブジェクトエクスプローラーのデータベースフォルダを展開します。
  3. 対象データベースを右クリックし、名前の変更を選択します。
  4. 新しい名称を入力し、Enterキーを押下します。

SSMSによるSQL Serverデータベース名変更

Tips:名前変更が失敗する場合、アクティブな接続が原因である可能性が高いです。再実行前にユーザーやアプリケーションの接続をすべて切断してください。

方法2:T-SQLを使用してデータベース名を変更

スクリプトによる自動実行やリモート操作にはT-SQLが適しています。古いスクリプトではsp_renamedbが使用されている場合がありますが、この手順は非推奨となっています。代わりにALTER DATABASEを使用してください。SQL Server 2012以降の標準構文です。

データベースに接続中のユーザーが存在しない場合は、1行のコマンドのみで完了します。

ALTER DATABASE [旧データベース名] MODIFY NAME = [新データベース名]; 

T-SQLによるSQL Serverデータベース名変更

アクティブな接続が存在する場合は、まずシングルユーザーモードに切り替えてから名前変更を実行し、最後にマルチユーザーモードに戻します。

ALTER DATABASE [旧データベース名] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [旧データベース名] MODIFY NAME = [新データベース名];
ALTER DATABASE [新データベース名] SET MULTI_USER;
T-SQL実行時のアクティブ接続エラー
注記:sp_renamedbは非推奨構文です。今後はALTER DATABASE構文の使用が推奨されます。

方法3:デタッチ&アタッチによるデータベース名変更

論理データベース名だけでなく、ディスク上の物理的な.mdf.ldfファイル名も変更したい場合にこの手法を使用します。

  1. 作業を実施する前に、必ずデータベースのバックアップを取得します。
  2. SSMS上で対象データベースを右クリックし、タスクデタッチを選択します。接続を切断にチェックを入れ、OKをクリックします。
  3. データ保存フォルダに移動し、物理ファイル名を変更します(例:OldName.mdf → NewName.mdf、OldName.ldf → NewName.ldf)。
  4. SSMSのデータベースフォルダを右クリックし、アタッチを選択します。
  5. 追加をクリックし、名前変更後の.mdfファイルを選択します。アタッチ名列には古い論理名が初期表示されるため、ここを新しいデータベース名に書き換えます。
  6. OKをクリックしてアタッチ作業を完了させます。
  7. アタッチ完了後、論理ファイル名も新しいデータベース名に統一するよう更新します。
ALTER DATABASE [新データベース名] MODIFY FILE (NAME = [旧論理ファイル名], NEWNAME = [新論理ファイル名]); 

 

デタッチアタッチによるデータベース名変更

よくあるエラーとトラブルシューティング

単純なデータベース名変更作業でもトラブルが発生する場合があります。頻出する3種類のエラーと解決策を記載します。

エラー1:データベースが使用中 / データベースを開けません

SQL Serverは名前変更に排他ロックを必要とするため、アクティブな接続が存在すると処理がブロックされます。事前にシングルユーザーモードに切り替えて既存接続を強制切断します。

USE master;
ALTER DATABASE [旧名称] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [旧名称] MODIFY NAME = [新名称];
ALTER DATABASE [新名称] SET MULTI_USER;

 

エラー2:非推奨構文警告(sp_renamedb

古いストアドプロシージャsp_renamedbを使用すると本警告が出力されます。SQL Server 2012以降正式対応のALTER DATABASE ... MODIFY NAMEに置き換えてください。

エラー3:デタッチ・アタッチ時の物理ファイルアクセス拒否

デタッチアタッチ作業中に発生するエラーです。SQL Serverサービスアカウントにファイル格納フォルダへの適切な権限が付与されていないことが原因です。エクスプローラーからフォルダのセキュリティ設定を開き、SQL Serverサービスアカウントに変更またはフルコントロール権限を付与します。

i2BackupでSQL Serverデータベースを保護

データベース名の変更は構造変更作業に該当します。接続文字列や権限設定の更新が不十分な場合、予期せぬ業務停止が発生し、復旧手段がなくなる恐れがあります。環境に変更を加える前に最新のバックアップを取得するのが業界標準の手順であり、ここでi2Backupが活用できます。

i2BackupはSQL Server、Oracle、MySQLなど重要なデータベースワークロード向けに開発されたデータ保護プラットフォームです。

i2Backupの主な機能

  • フルスタックワークロード保護:i2BackupはSQL Server、Oracle、MySQLと完全互換であり、VMwareやHyper-Vなどの仮想環境に対しエージェントレスVMバックアップを提供します。
  • 継続的データベースバックアップ:REDOログ・アーカイブログを常時取得し、単一環境・クラスタ環境(HA、ADG、RAC)両方でRPOほぼゼロ、任意時点への精密な復元を実現します。
  • 改ざん不可セキュリティ:不正なデータ改変を防止するため、WORM準拠ストレージとAES/SM4標準暗号化を搭載し、バックアップデータを改ざん不可な状態で安全に保管します。
  • 粒度の細かい柔軟な復元:テーブル単位の復元や、仮想マシン・物理サーバー・データベースホストを跨いだ「任意先へ復元」機能を利用可能です。
  • インテリジェント自動化:設定後は自動運用可能なワークフローにより、柔軟なスケジュール設定、古いバックアップの自動削除、並列タスク実行で高効率な運用を実現します。

分散アーキテクチャと一元管理コンソールにより、複雑な環境全体のデータガバナンスを簡素化。重要な局面でSQL Serverインスタンスの安定稼働と確実な復旧を保証します。

60日間無料トライアル

よくある質問

Q1:データベース名を変更すると既存アプリの接続に影響しますか?

はい。名前変更はSQL Server内部の論理名のみ更新されるため、旧名称を記載した接続文字列、スクリプト、リンクサーバー参照は動作しなくなり、手動更新が必須です。

 

Q2:SQL Serverのdb_nameを変更する方法は?

ALTER DATABASE [旧名称] MODIFY NAME = [新名称];を実行してデータベース名を更新します。他ユーザーが接続中の場合は事前にシングルユーザーモードへ切り替え、ロックエラーを回避してください。

 

Q3:SQL Serverのテーブル名を変更する方法は?

sp_renameストアドプロシージャを使用します:EXEC sp_rename '旧テーブル名', '新テーブル名'; 注意点として、この操作はテーブル名のみ変更するため、旧テーブル名を参照するストアドプロシージャやビューは手動で修正する必要があります。

 

Q4:データベース名を変更するためにオフラインにする必要がありますか?

常に必要ではありません。SSMSまたはALTER DATABASEを使用する場合は、アクティブ接続がなければオフライン化せずに変更可能です。デタッチ&アタッチ方式は一時的にオフラインにする必要がありますが、物理ファイル名も同時に変更できるメリットがあります。

 

Q5:SQL Serverのシステムデータベース名は変更可能ですか?

いいえ。master、model、tempdbなどのシステムデータベースは名称変更に対応していません。SQL Serverの動作に必須のため、変更を試行するとエラーが発生します。

 

Q6:データベース名変更で.mdf/.ldfファイル名も自動的に変わりますか?

いいえ。論理名のみ更新されます。物理ファイル名を変更したい場合はデタッチ&アタッチ手法を使用し、データベースをデタッチ後ディスク上のファイル名を手動で書き換え、新名称でアタッチし直します。

 

Q7:データベース名の変更を元に戻せますか?

はい。ALTER DATABASE [新名称] MODIFY NAME = [旧名称];を実行するだけで復元可能です。物理ファイル名も変更した場合は再度デタッチ&アタッチ作業を実施する必要があります。

 

まとめ

自身の環境に適した手法を選べば、SQL Serverのデータベース名変更は難しくありません。SSMSは単発で簡単に実施したい場合に適し、T-SQLはスクリプト運用や自動化に優位性があります。物理ファイル名も併せて変更する必要がある場合はデタッチ&アタッチ方式を選択します。

いずれの手法を使用する場合も、作業前に必ずデータベースのバックアップを取得し、名前変更完了後は旧名称を参照する接続文字列やスクリプトをすべて更新してください。

このようなデータベース構造変更作業の前に信頼できるバックアップソリューションをお探しなら、i2Backupが各段階でSQL Serverデータを保護し、確実な復旧を実現します。

概要は準備中です

関連記事

SQL Server Management Studioでデータベースをバックアップする方法
このガイドでは、SQL Server Management Studio(SSMS)におけるデータベースのバックアップ手順を詳しく解説しています。GUIによる手動操作、カスタムT‑SQLスクリプト、自動化ソリューション、さらにi2Backupによるエンタープライズ向けの高度な運用方法を扱っています。
記事を読む
SQL Serverデータベースが復元状態でスタックした場合の6つの効果的な解決策
SQLデータベースが復元モードのままになるトラブルが発生すると、データベースの復元作業が中断し、通常業務に影響を及ぼします。本記事では代表的な発生原因を解説し、当該問題を効率的に診断・解決する6つの実用的な手法を紹介します。
記事を読む
SQL Serverバックアップ「アクセス拒否」エラー完全解決
SQL Serverバックアップにおけるアクセス拒否またはOSエラー5は、バックアップおよびリストア処理を突然停止させる可能性があります。本ガイドでは一般的な原因、簡易的な対処法、段階的な解決手順、そしてi2Backupのようなツールが権限エラーを根本的に防ぐ仕組みについて解説します。
記事を読む
SQLテーブルデータをExcelにエクスポートする方法:ステップバイステップガイド
SQLテーブルデータを迅速かつ正確にExcelへエクスポートする必要がありますか。本ガイドではSSMSからPythonまで、4つの実用的な方法を解説しており、業務フローに最適な手法を選択できます。
記事を読む
目次:
最新情報を購読
最新のインサイト、ニュース、限定コンテンツをお届けします。いつでも配信解除が可能です。
購読する
ビジネスデータのセキュリティ強化を始めませんか?
60日間の無料トライアルまたはデモで、Info2softが企業データをどのように保護するかをご確認ください。
フォームにご記入の上、送信してください。担当者より追ってご連絡いたします。
このフォームを送信することにより、 プライバシー通知を読み、同意したことを確認します。
{{ isSubmitting ? '送信中...' : '送信する' }}