SQL Server Configuration Managerを使用してデフォルトデータベースを変更する方法

2024-04-09

SQL Serverでデフォルトデータベースを変更する方法(SSMSを使わない場合)

このチュートリアルでは、Microsoft SQL Server Management Studio (SSMS) を使用せずに、SQL Serverのデフォルトデータベースを変更する方法を説明します。

方法

以下の2つの方法を紹介します。

Transact-SQL (T-SQL) ステートメントを使用する

  1. SQL Serverに接続できるクライアントツール(例:sqlcmd)を開きます。
  2. 以下のT-SQLステートメントを実行します。
ALTER LOGIN <ログイン名> WITH DEFAULT_DATABASE = <データベース名>;

例:

ALTER LOGIN sa WITH DEFAULT_DATABASE = TestDB;

sp_defaultdb プロシージャを使用する

EXEC sp_defaultdb <ログイン名>, <データベース名>;
EXEC sp_defaultdb sa, TestDB;

注意事項

  • 上記のいずれの方法を使用する前に、必ずデータベースバックアップを取ることを推奨します。
  • デフォルトデータベースを変更すると、そのログイン名で接続する際に接続されるデータベースが変わります。
  • 特定のユーザーのみデフォルトデータベースを変更したい場合は、上記のT-SQLステートメントをそのユーザーに対してのみ実行する必要があります。
  • SQL Serverのバージョンによっては、上記の方法が使用できない場合があります。詳細は、SQL Serverのドキュメントを参照してください。

補足




-- ログイン 'sa' のデフォルトデータベースを 'TestDB' に変更する

ALTER LOGIN sa WITH DEFAULT_DATABASE = TestDB;

GO

-- 変更を確認する

SELECT default_database_name
FROM sys.logins
WHERE login_name = 'sa';
-- ログイン 'sa' のデフォルトデータベースを 'TestDB' に変更する

EXEC sp_defaultdb 'sa', 'TestDB';

GO

-- 変更を確認する

SELECT default_database_name
FROM sys.logins
WHERE login_name = 'sa';
  • 上記のサンプルコードは、SQL Server 2005 で動作確認しています。
  • 他のバージョンの SQL Server を使用している場合は、必要に応じてコードを修正する必要があります。



SQL Serverでデフォルトデータベースを変更するその他の方法

SQL Server Configuration Managerを使用する

  1. SQL Server 2005 Native Clientを展開します。
  2. セキュリティ > ログインを選択します。
  3. 右側のペインで、デフォルトデータベースを変更したいログインを選択します。
  4. プロパティを選択します。
  5. 全般ページで、既定のデータベースボックスに、新しいデフォルトデータベースの名前を入力します。
  6. OKをクリックします。

レジストリエディタを使用する

警告: レジストリエディタを使用する方法は、上級者向けであり、誤った操作をするとシステムトラブルが発生する可能性があります。

  1. 以下のキーに移動します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.<バージョン>\MSSQLServer
  1. MSSQLServerキーがない場合は作成します。
  2. MSSQLServerキーを右クリックし、新規 > DWORD (32 ビット) 値を選択します。
  3. 新しい値の名前を DefaultDatabase に変更します。
  4. DefaultDatabaseをダブルクリックし、値のデータフィールドに、新しいデフォルトデータベースの名前を入力します。
  5. コンピュータを再起動します。

sql-server database sql-server-2005


T-SQL: CASE 式と EXISTS/NOT EXISTS 演算子による条件分岐

T-SQLでは、WHERE 句内で直接IF 構文を使用することはできません。しかし、CASE 式やEXISTS/NOT EXISTS 演算子などを利用することで、条件分岐を実現できます。方法CASE 式は、条件に基づいて異なる値を返す式です。WHERE 句内で CASE 式を使用することで、条件分岐を実現できます。...


トランザクション、select_for_update、save_on_conflict:それぞれの役割と使い分け

原子操作とは、複数の操作が一連の不可分な操作として実行されることを保証するものです。つまり、操作の一部が成功して一部が失敗するようなことは起こりません。Djangoは、データベース操作を原子的に実行するためのいくつかの方法を提供しています。...


SQL Serverテーブルにおける主キーのベストプラクティス

SQL Serverテーブルにおける主キーのベストプラクティスは以下のとおりです。一意性:主キーは、テーブル内のすべての行を一意に識別する必要があります。重複する値は許可されません。複合主キーを使用する場合は、各列の組み合わせがユニークであることを確認する必要があります。...


PostgreSQL ビューの CREATE VIEW コードを表示する方法

\d コマンドpsql の \dd コマンド情報スキーマの views ビューそれぞれの方法について、詳細と例を説明します。\d コマンドは、データベースオブジェクトに関する情報を表示します。ビューの CREATE VIEW コードを表示するには、以下の構文を使用します。...


UNIQUE制約、PRIMARY KEY制約、事前チェックと比較で見る「INSERT IF NOT EXISTS」のメリットとデメリット

SQL Server でデータを挿入する際、既に同じデータが存在する場合に重複レコードが発生してしまうことがあります。この問題を解決するために、INSERT IF NOT EXISTS という機能が用意されています。動作INSERT IF NOT EXISTS は、指定された条件に合致するレコードが既に存在しない場合にのみ、新しいレコードを挿入する機能です。条件は、WHERE 句で指定できます。...