ALTER SCHEMA ステートメントを使用して SQL Server スキーマの名前を変更する
SQL Server スキーマの名前変更
ALTER SCHEMA
ステートメントは、スキーマの名前を変更するための最も直接的な方法です。このステートメントを使用するには、次の構文を使用します。
ALTER SCHEMA <old_schema_name> TO <new_schema_name>;
ここで、
<old_schema_name>
は、変更するスキーマの名前です。
例:
ALTER SCHEMA dbo TO new_schema;
この例では、dbo
スキーマの名前を new_schema
に変更します。
注意事項:
ALTER SCHEMA
ステートメントを実行するには、そのデータベースに対するALTER SCHEMA
権限が必要です。- 新しいスキーマ名は、既に存在しないスキーマ名である必要があります。
- スキーマの名前を変更すると、そのスキーマに属するすべてのオブジェクトの名前も変更されます。
- スキーマの名前を変更する前に、すべての接続を閉じてください。
SSMS を使用する
SQL Server Management Studio (SSMS) を使用して、スキーマの名前を変更することもできます。
手順:
- SSMS を起動し、データベースに接続します。
- オブジェクト エクスプローラーで、変更するスキーマを展開します。
- スキーマを右クリックし、[名前の変更] を選択します。
- 新しいスキーマ名を入力し、[OK] をクリックします。
T-SQL スクリプトを使用して、スキーマの名前を変更することもできます。
- 以下の T-SQL スクリプトを作成します。
USE <database_name>;
GO
ALTER SCHEMA <old_schema_name> TO <new_schema_name>;
GO
<database_name>
は、スキーマが存在するデータベースの名前です。
- スクリプトを実行します。
その他の方法
上記の方法以外にも、スキーマの名前を変更する方法はいくつかあります。
- データベース エンジン ツール (DET) を使用する
- PowerShell を使用する
これらの方法は、より高度なユーザー向けです。
SQL Server スキーマの名前を変更するには、いくつかの方法があります。どの方法を使用するかは、個々の状況によって異なります。
USE AdventureWorks2019;
GO
ALTER SCHEMA dbo TO new_schema;
GO
- このコードを実行する前に、AdventureWorks2019 データベースに接続していることを確認してください。
new_schema
という名前のスキーマが既に存在しないことを確認してください。
以下のリンクは、スキーマの名前を変更するためのその他のサンプルコードを提供しています。
SQL Server スキーマの名前を変更するその他の方法
- [全般] ページで、[名前] ボックスに新しいスキーマ名を入力します。
- [OK] をクリックします。
USE <database_name>;
GO
EXEC sp_rename 'old_schema_name', 'new_schema_name';
GO
データベース エンジン ツール (DET) を使用して、スキーマの名前を変更することもできます。
- DET を起動します。
- [接続] ダイアログ ボックスで、データベース サーバーに接続します。
- 以下のコマンドを実行します。
Import-Module SqlServer
$server = New-Object Microsoft.SqlServer.Management.Smo.Server 'localhost'
$database = $server.Databases['AdventureWorks2019']
$schema = $database.Schemas['dbo']
$schema.Rename('new_schema')
$database.Alter()
- PowerShell を使用してスキーマの名前を変更するには、SQL Server PowerShell モジュールをインストールする必要があります。
sql sql-server sql-server-2005