sql >> データベース >  >> RDS >> Sqlserver

SQL Serverデータベースのオブジェクト(テーブル、ビュー、ストアドプロシージャ)のスキーマを変更する方法-SQL Server/TSQLチュートリアルパート28

    シナリオ:
    あなたは生命保険会社で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の他のユーザーへ

    1. SQL分割コンマ区切り行

    2. PostgreSQLをリモートで管理するためのヒント

    3. 会議を最大限に活用するための7つの戦略

    4. MySQLルートパスワードをリセットする方法