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

SQLServerでデータベースの名前を変更する方法-SQLServer/TSQLチュートリアルパート26

    シナリオ:

    データベースの名前を変更する必要がある状況に直面することがよくあります。状況を考えてみてください。あなたは金融会社のSQLServer開発者として働いており、データベース名はTechBrothersITであり、名前をTechbrothersに変更したいと考えています。 QA、UAT、本番環境で実行できるスクリプトを提供する必要があります。

    解決策:

    GUIによる名前の変更:
    データベースの名前変更は非常に簡単です。データベースを右クリックして、[名前の変更]を選択するだけです。
    SQLServerでデータベースの名前を変更する方法-SQLServer/TSQLチュートリアル

    データベースの名前で変更を求めるプロンプトが表示されることを確認してください。先に進んで変更し、Enterキーを押します。 SQLServerでデータベースの名前を変更する方法-SQLServer/TSQLチュートリアル



    TSQLを使用してデータベースの名前を変更する方法: TSQLを使用して、SQLServerのデータベースの名前を変更できます。
    1)Sp_Renameシステムストアドプロシージャを使用することにより、sp_renameシステムストアドプロシージャを使用して、SQLサーバーのデータベースの名前を変更できます。 TechBrtohersITの名前をTechBrotherに変更したいとします。以下のスクリプトを使用できます。
    sp_renamedb 'OldDatabaseName','NewDatabaseName'
    
    
    EXEC sp_renamedb 'TechBrothersIT','TechBrothers'

    2)データベースの変更と変更の使用 以下のスクリプトを使用して名前を変更できます。この例では、TechBrothersITの名前をTechBrothersに変更しています。
    USE master;
    GO
    ALTER DATABASE TechBrothersIT
    Modify Name = TechBrothers ;
    GO

    一般的なエラー: データベースがさまざまなアプリケーションで使用されているとしましょう。以下のエラーが発生する可能性があります。
    メッセージ5030、レベル16、状態2、4行目
    データベースを排他的にロックして操作を実行することはできませんでした。

    この場合、名前変更スクリプトを実行する前に、すべての接続を切断できます。以下のスクリプトを使用して、データベース上のすべての接続を強制終了できます。名前を変更するためにデータベース上のすべての接続を強制終了する前に、チームおよび他のチームと確認してください。
    USE MASTER
    GO
    DECLARE @DatabaseName AS VARCHAR(500)
    -->Provide the DataBaseName for which want to Kill all processes.
    SET @DatabaseName='YourDataBaseName'
    DECLARE @Spid INT
    DECLARE KillProcessCur CURSOR FOR
      SELECT spid
      FROM   sys.sysprocesses
      WHERE  DB_NAME(dbid) = @DatabaseName
    OPEN KillProcessCur
    FETCH Next FROM KillProcessCur INTO @Spid
    WHILE @@FETCH_STATUS = 0
      BEGIN
          DECLARE @SQL VARCHAR(500)=NULL
          SET @SQL='Kill ' + CAST(@Spid AS VARCHAR(5))
          EXEC (@SQL)
          PRINT 'ProcessID =' + CAST(@Spid AS VARCHAR(5))
                + ' killed successfull'
          FETCH Next FROM KillProcessCur INTO @Spid
      END
    CLOSE KillProcessCur
    DEALLOCATE KillProcessCur
     
     
     
     
     
    1. OracleからPostgreSQLに移行する10の理由

    2. WindowsServer2019にXAMPPソフトウェアをインストールして構成する

    3. 動的SQLの結果はSQLストアドプロシージャの一時テーブルになります

    4. Railsの移行:PostgreSQL上のBigintが失敗しているようですか?