あなたは生命保険会社でSQLServer開発者として働いています。それらのデータベース名はTechBrothersITであり、オブジェクトが使用しているスキーマ名の1つはTBです。彼らはあなたにスキーマの名前をLIFEに変更する割り当てを与えました。それをどのように行いますか?
解決策:
SQLServerデータベースのスキーマの名前を変更する簡単な方法はありません。この変更を行うには、以下の手順に従う必要があります。手順1:新しいスキーマを作成する LIFEという名前の新しいスキーマを作成します。以下のスクリプトを使用できます。
Create Schema [LIFE]ステップ2:オブジェクトを新しいスキーマに転送します。 以下のスクリプトを使用して、単一のオブジェクト(テーブル、ビュー、ストアドプロシージャなど)を新しいスキーマに転送できます。
Use Database ALTER SCHEMA NewSchema TRANSFER OldSchema.ObjectName GOを使用します。
TB Schemaにテーブルがあり、以下のスクリプトを使用してLifeSchemaに移動できるとします。
Alter Schema [LIFE] Transfer TB.[test] ;
TBスキーマからLIFEスキーマに転送するには、オブジェクトごとに上記のクエリを繰り返す必要があります。以下のselectクエリを使用して、データベース内の他のオブジェクトのAlterクエリを生成し、オブジェクトを1つのスキーマから別のスキーマに転送できます。
Declare @SourceSchema VARCHAR(100) Declare @DestinationSchema VARCHAR(100) SET @SourceSchema='TB' SET @DestinationSchema='LIFE' Select 'Alter Schema ['+@DestinationSchema+'] Transfer '
+@SourceSchema+'.['+name+']'
from sys.objects where schema_name(schema_id)=@SourceSchema@SourceSchemaおよび@DestinationSchema変数値を指定すると、クエリによってAlterステートメントが生成されます。コピーしてクエリウィンドウで実行します。
注: UATおよび本番環境で実行する前に、開発環境で変更をテストしてください。
ビデオデモ:1つのスキーマからオブジェクトを転送する方法SQLServerの他のユーザーへ