全部產品
Search
文件中心

ApsaraDB RDS:SQL命令管理資料庫

更新時間:Jun 19, 2024

本文介紹使用SQL命令在RDS SQL Server執行個體中建立和管理資料庫的方法,以及在管理資料庫時不允許執行的特定操作。

前提條件

執行個體版本需為RDS SQL Server 2012及以上版本。

建立資料庫

執行如下命令,建立資料庫:

CREATE DATABASE TestDb
說明

在RDS SQL Server執行個體中建立資料庫時會產生預設路徑,請您不要指定任何檔案的路徑。

您可以執行以下命令,查詢SQL Server執行個體的所有資料庫的資料檔案和記錄檔的路徑資訊:

SELECT db_name(database_id), physical_name
FROM sys.master_files;

刪除資料庫

執行如下命令,刪除資料庫:

DROP DATABASE [TestDb]

需注意,若您在刪除資料庫前沒有對該資料庫進行過任何備份,系統會返回如下提示資訊:

DROP DATABASE [TestDb]
        -------------------------------------------------------------------------------------------------
        Kindly reminder:
            your database [TestDb] does not exist any backup set.
        -------------------------------------------------------------------------------------------------
Login User [Test11] has dropped database [TestDb] .

更改資料庫注意事項

您可以更改資料庫的大部分屬性,但請不要執行如下操作:

  • 不能將資料庫移動到錯誤的檔案路徑。

    例如,若您執行如下命令並指定了錯誤的檔案路徑:

    ALTER DATABASE [TestDb]MODIFY FILE( NAME = N'TestDb', FILENAME = N'E:\KKKK\DDD\DATA\TestDb.mdf' )

    則系統會返回如下錯誤資訊:

    Msg 50000, Level 16, State 1, Procedure ******, Line 152
    The file path [ 
    E:\KKKK\DDD\DATA\TestDb.mdf ] is invalid,please specify correct path folder [ E:\mmm\gggg\ ].
    Msg 3609, Level 16, State 2, Line 2
    The transaction ended in the trigger. The batch has been aborted.
  • 不能將資料庫的復原模式設定為FULL之外的其他模式。

    例如,若您執行了如下將資料庫的復原模式設定為SIMPLE的命令:

    ALTER DATABASE [TestDb]  --[TestDb]為資料庫名稱。
    SET RECOVERY SIMPLE

    資料庫日誌鏈會斷開,系統會將復原模式重設為FULL,但不會實際修改資料庫復原模式為SIMPLE。會返回如下報錯資訊:

    Msg 50000, Level 16, State 1, Procedure ******, Line 46
    Login User [Test11] can't change database [TestDb] recovery model.
    Msg 3609, Level 16, State 2, Line 2
    The transaction ended in the trigger. The batch has been aborted.
    重要

    如果日誌已滿只能截斷日誌鏈進行收縮。原則上不允許將資料庫修改為SIMPLE簡單模式,這種方式會影響RDS的備份鏈,導致經過目前時間點的所有恢複任務失敗。如果緊急情況下您需要通過修改資料庫復原模式為SIMPLE簡單模式並需要截斷資料庫日誌鏈,表示您已經理解並願意承擔上述風險。此時您可忽略執行如下命令後顯示的錯誤資訊,資料庫日誌鏈依然會斷開。

  • 將資料庫設定為OFFLINE後,不能直接執行ONLINE命令。

    例如,對於目前狀態為OFFLINE的資料庫,若您直接執行ONLINE的命令,如下所示:

    USE [master]
      GO
      --set offline
      --ALTER DATABASE [TestDb]
      --SET OFFLINE
      --WITH ROLLBACK AFTER 0
      ALTER DATABASE [TestDb]
      SET ONLINE

    則系統會返回如下錯誤資訊:

    Msg 5011, Level 14, State 9, Line 1
    User does not have permission to alter database 'TestDb', the database does not exist, or the database is not in a state that allows access checks.
    Msg 5069, Level 16, State 1, Line 1
    ALTER DATABASE statement failed.

    若您想把資料庫的狀態從OFFLINE改成ONLINE,您可以執行sp_rds_set_db_online預存程序命令進行狀態的變更:

    EXEC sp_rds_set_db_online 'TestDb'

相關操作