SQL Server 與 Azure SQL 受控執行個體之間的 T-SQL 差異

適用於:Azure SQL 受控執行個體

本文摘要說明 Azure SQL 受控執行個體和 SQL Server 在語法與行為上的差異。

SQL 受控執行個體提供與 SQL Server 資料庫引擎的高度相容性,而且 SQL 受控執行個體支援大部分的功能。

Diagram showing the easy migration from SQL Server.

SQL 受控執行個體引進一些 PaaS 限制,而且相較於 SQL Server,還有一些行為變更。 差異分為下列類別:

大部分的功能都是架構限制式,並代表服務功能。

在 SQL 受控執行個體中發現的暫時性已知問題,未來將會解決並在新功能中說明。

注意

Microsoft Entra 標識符 先前稱為 Azure Active Directory (Azure AD)。

可用性

Always On 可用性群組

SQL 受控執行個體內建高可用性,並且無法由使用者控制。 不支援下列陳述式:

備份

Azure SQL 受控執行個體會自動備份,所以使用者可以建立完整的資料庫 COPY_ONLY 備份。 不支援差異、記錄和檔案快照集備份。

  • 透過 SQL 受管理執行個體,您只能將實例資料庫備份至 Azure Blob 記憶體帳戶:
    • 只支援 BACKUP TO URL
    • 不支援 FILETAPE 及備份裝置。
  • 支援大部分一般的 WITH 選項。
    • COPY_ONLY 屬於必要項目。
    • 不支援FILE_SNAPSHOTCREDENTIAL
    • 磁帶選項:不支援 REWINDNOREWINDUNLOADNOUNLOAD
    • 記錄專用選項:不支援 NORECOVERYSTANDBYNO_TRUNCATE

限制:

  • 使用 SQL 受控執行個體,您可以將執行個體資料庫備份為最多具有 32 個等量磁碟區的備份,這足夠最多 4 TB 的資料庫使用 (如果使用備份壓縮)。

  • 您無法在使用服務管理的透明資料加密 (TDE) 加密的資料庫上執行 BACKUP DATABASE ... WITH COPY_ONLY。 服務管理的 TDE 會強制使用內部 TDE 金鑰來加密備份。 無法匯出金鑰,因此您無法還原備份。 使用自動備份和時間點還原,或改用客戶管理的 (BYOK) TDE。 您也可以在資料庫上停用加密。

  • SQL 受控執行個體上所建立的原生備份只能還原至 SQL Server 2022 執行個體。 這是因為相較於其他版本的 SQL Server,SQL 受控執行個體具有較高的內部資料庫版本。 如需詳細資訊,請檢閱將 SQL 受控執行個體資料庫備份還原至 SQL Server 2022

  • 若要備份或從 Azure 記憶體還原資料庫,您可以使用受控識別或共用存取簽章 (SAS) 進行驗證,這是授與您限制訪問許可權的 URI,以 Azure 儲存體 資源深入瞭解。 不支援針對這些案例使用存取密鑰。

  • 在 SQL 受控執行個體中使用 BACKUP 命令時的備份等量磁碟區大小上限為 195 GB,這是最大的 Blob 大小。 在備份命令中增加等量磁碟區的數目,以減少個別的等量磁碟區大小並維持在這項限制內。

    提示

    若要解決這項限制,當您從內部部署環境或虛擬機器中的 SQL Server 備份資料庫時,您可以:

    • 備份至 DISK,而不是備份至 URL
    • 將備份檔案上傳至 Blob 儲存體。
    • 還原至 SQL 受控執行個體。

    SQL 受控執行個體中的 Restore 命令支援備份檔案中較大的 Blob 大小,因為不同的 Blob 類型用於儲存已上傳的備份檔案。

如需使用 T-SQL 進行備份的相關資訊,請參閱備份

安全性

稽核

Microsoft Azure SQL 和 SQL Server 中的稽核主要差異如下:

  • 在 SQL 受控執行個體中,稽核在伺服器層級執行。 .xel 記錄檔儲存於 Azure Blob 儲存體。
  • 在 Azure SQL Database 中,稽核在資料庫層級執行。 .xel 記錄檔儲存於 Azure Blob 儲存體。
  • 在 SQL Server、內部部署或虛擬機器中,稽核在伺服器層級執行。 事件會儲存在檔案系統或 Windows 事件記錄檔上。

SQL 受控執行個體中的 XEvent 稽核支援 Azure Blob 儲存體目標。 不支援檔案與 Windows 記錄。

向 Azure Blob 儲存體進行稽核的 CREATE AUDIT 語法有一個主要差異:

  • 提供新的語法 TO URL 來指定放置檔案之 Azure Blob 記憶體容器 .xel 的 URL。
  • 不支援 TO FILE 語法,因為 SQL 受控執行個體無法存取 Windows 檔案共用。

如需詳細資訊,請參閱

憑證

SQL 受控執行個體無法存取檔案共用及 Windows 資料夾,因此會有下列限制:

  • 憑證不支援 CREATE FROM/BACKUP TO 檔案。
  • 不支援 FILE/ASSEMBLY 中的 CREATE/BACKUP 憑證。 無法使用私密金鑰檔案。

請參閱 CREATE CERTIFICATEBACKUP CERTIFICATE

因應措施取得憑證二進位內容和私密金鑰,將其儲存為 .sql 檔案,並從二進位建立,而不是建立憑證的備份及還原備份:

CREATE CERTIFICATE
   FROM BINARY = asn_encoded_certificate
WITH PRIVATE KEY (<private_key_options>);

認證

支援受控識別、Azure 金鑰保存庫和SHARED ACCESS SIGNATURE身分識別。 不支援 Windows 使用者。

請參閱 CREATE CREDENTIALALTER CREDENTIAL

密碼編譯提供者

SQL 受控執行個體無法存取檔案,所以無法建立密碼編譯提供者:

登入和使用者

  • 不支援使用 FROM CERTIFICATEFROM ASYMMETRIC KEYFROM SID 建立 SQL 登入。 請參閱 CREATE LOGIN。 伺服器主體(登入)是在伺服器層級建立,而使用者(資料庫主體)則會在資料庫層級建立。 支援使用 CREATE LOGIN 語法建立的 Microsoft Entra 登入,以及使用 CREATE USER FROM LOGIN 語法建立的 Microsoft Entra 使用者。 建立使用者並指定 FROM LOGIN時,該使用者與登入相關聯,並繼承指派給該用戶的伺服器角色和許可權。

    SQL 受管理執行個體 支援使用 語法CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER建立以 Microsoft Entra 身分識別為基礎的自主資料庫使用者。 建立這種方式的使用者不會與伺服器主體相關聯,即使資料庫中有相同名稱的伺服器 master 主體也一樣。

  • 不支援使用 CREATE LOGIN ... FROM WINDOWS 語法建立的 Windows 登入。 使用 Microsoft Entra 登入和使用者。

  • 實例的 Microsoft Entra 系統管理員具有 不受限制的系統管理員許可權。

  • 某些功能不支援在跨實例互動中使用 Microsoft Entra 登入,但僅在單一 SQL 受管理執行個體 內,例如 SQL Server 複寫。 不過,鏈接的伺服器功能支援使用 Microsoft Entra 伺服器主體 (logins) 進行跨實例驗證。

  • 不支援將對應至 Microsoft Entra 群組的 Microsoft Entra 登入設定為資料庫擁有者。 即使尚未在資料庫中建立登入,Microsoft Entra 群組的成員也可以是資料庫擁有者。

  • 支援使用其他 Microsoft Entra 主體模擬 Microsoft Entra 伺服器層級主體,例如 EXECUTE AS 子句。 EXECUTE AS 限制如下:

    • 當名稱與登入名稱不同時,Microsoft Entra 使用者不支援 EXECUTE AS USER。 其中一項範例是,透過 CREATE USER [myAadUser] FROM LOGIN [john@contoso.com] 語法建立使用者,並嘗試透過 EXEC AS USER = myAadUser 進行模擬。 當您從 Microsoft Entra 登入建立 USER 時,請指定 user_name與 LOGIN 相同的login_name

    • 只有屬於角色的 sysadmin SQL Server 層級登入可以執行下列以 Microsoft Entra 主體為目標的作業:

      • EXECUTE AS USER
      • EXECUTE AS LOGIN
    • 若要使用 EXECUTE AS 語句模擬使用者,用戶必須直接對應至 Microsoft Entra 登入。 對應至 Microsoft Entra 伺服器主體之 Microsoft Entra 群組成員的使用者無法有效地模擬 EXECUTE AS 語句,即使呼叫端具有指定使用者名稱的模擬許可權也一樣。

  • SQL 受管理執行個體 使用 SSMS V18.4 或更新版本SqlPackage 的 Microsoft Entra 用戶支援使用 bacpac 檔案的資料庫導出/匯入。

    • 使用資料庫 bacpac 檔案支援下列組態:
      • 匯出/匯入相同 Microsoft Entra 網域內不同管理實例之間的資料庫。
      • 從 SQL 受管理執行個體 導出資料庫,並匯入至相同 Microsoft Entra 網域內的 SQL 資料庫。
      • 從 SQL 資料庫 匯出資料庫,並匯入至相同 Microsoft Entra 網域內的 SQL 受管理執行個體。
      • 從 SQL 受控執行個體匯出資料庫,然後匯入至 SQL Server (2012 版或更新版本)。
        • 在此設定中,所有 Microsoft Entra 用戶都會建立為沒有登入的 SQL Server 資料庫主體(使用者)。 使用者類型為 SQL ,且 在中sys.database_principals會顯示為 SQL_USER 。 其權限和角色會保留在 SQL Server 資料庫中繼資料中,並且可用於模擬。 不過,它們無法用來使用其認證來存取和登入 SQL Server。
  • 只有伺服器層級主體登入,這是由 SQL 受管理執行個體 布建程式所建立、伺服器角色的成員,例如 securityadminsysadmin,或其他在伺服器層級具有 ALTER ANY LOGIN 許可權的登入,可以在資料庫中建立 SQL 受管理執行個體 的 Microsoft Entra 伺服器主體 (logins)。master

  • SQL 驗證型登入必須獲指派 sysadmin 角色,才能建立 Microsoft Entra 身分識別的登入。

  • 登入必須是裝載 Azure SQL 受控執行個體 相同 Microsoft Entra 租用戶的成員。

  • 從 SQL Server Management Studio 18.0 Preview 5 開始,物件總管 可以看到 Microsoft Entra 伺服器主體(登入)。

  • 在實例上啟用系統管理員之後,系統會自動為 Microsoft Entra 系統管理員建立具有 系統管理員 存取層級的伺服器主體。

  • 在驗證期間,解析驗證主體時會套用下列順序:

    1. 如果 Microsoft Entra 帳戶直接對應至 Microsoft Entra 登入,該登入的類型為 sys.server_principals “E”,請授與存取權並套用該登入的許可權。
    2. 如果 Microsoft Entra 帳戶是對應至 Microsoft Entra 登入的群組成員,且 sys.server_principals 該登入的類型為 “X”,請授與存取權並套用該登入的許可權。
    3. 如果 Microsoft Entra 帳戶以直接對應至資料庫中的 Microsoft Entra 使用者存在,其類型為 sys.database_principals “E”,請授與 Microsoft Entra 資料庫使用者的存取權和套用許可權。
    4. 如果 Microsoft Entra 帳戶是對應至資料庫中 Microsoft Entra 使用者之 Microsoft Entra 群組的成員,該群組的類型 sys.database_principals 為 “X”,請授與 Microsoft Entra 群組使用者的存取權和套用許可權。

服務金鑰和服務主要金鑰

組態

緩衝集區延伸

定序

預設執行個體定序為 SQL_Latin1_General_CP1_CI_AS,而且可指定為建立參數。 請參閱定序

相容性層級

  • 支援的相容性層級為 100、110、120、130、140、150 和 160。
  • 不支援低於 100 的相容性層級。
  • 新資料庫的預設相容性層級為 150。 針對已還原的資料庫,如果相容性層級為 100 或更高,則維持不變。

請參閱 ALTER DATABASE 相容性層級

資料庫鏡像

不支援資料庫鏡像。

  • 不支援 ALTER DATABASE SET PARTNERSET WITNESS 選項。
  • 不支援 CREATE ENDPOINT … FOR DATABASE_MIRRORING

如需詳細資訊,請參閱 ALTER DATABASE SET PARTNER and SET WITNESSCREATE ENDPOINT … FOR DATABASE_MIRRORING

資料庫選項

  • 不支援多個記錄檔。
  • 「一般用途」服務層級中不支援記憶體內部物件。
  • 每個一般用途執行個體都有 280 個檔案的限制,這意指每個資料庫最多可有 280 個檔案。 一般用途層中的資料和記錄檔都會計入此限制。 業務關鍵層支援每個資料庫 32767 個檔案
  • 資料庫不能包含包含 FILESTREAM 資料的檔案群組。 如果 .bak 包含數據, FILESTREAM 則還原會失敗。
  • 每個檔案都位於 Azure Blob 儲存體中。 每個檔案的 IO 和輸送量均取決於每個個別檔案的大小。

CREATE DATABASE 陳述式

下列限制適用於 CREATE DATABASE

  • 無法定義檔案和檔案群組。

  • 記憶體最佳化檔案群組和檔案會自動新增,並稱為 XTP。

  • 不支援 CONTAINMENT 選項。

  • 不支援 WITH 選項。

    提示

    因應措施是在 CREATE DATABASE 之後使用 ALTER DATABASE 來設定資料庫選項,以新增檔案或設定內含項目。

  • 不支援 FOR ATTACH 選項。

  • 不支援 AS SNAPSHOT OF 選項。

如需詳細資訊,請參閱 CREATE DATABASE

ALTER DATABASE 陳述式

有些檔案屬性無法設定或變更:

  • ALTER DATABASE ADD FILE (FILENAME='path') T-SQL 陳述式中無法指定檔案路徑。 從指令碼中移除 FILENAME,因為 SQL 受控執行個體會自動放置這些檔案。
  • 無法使用 ALTER DATABASE 陳述式變更檔案名稱。
  • 不允許改變 XTP 檔案或檔案群組。

以下為預設選項且無法變更:

  • MULTI_USER
  • ENABLE_BROKER
  • AUTO_CLOSE OFF

下列選項無法修改:

  • AUTO_CLOSE
  • AUTOMATIC_TUNING(CREATE_INDEX=ON|OFF)
  • AUTOMATIC_TUNING(DROP_INDEX=ON|OFF)
  • DISABLE_BROKER
  • EMERGENCY
  • ENABLE_BROKER
  • FILESTREAM
  • HADR
  • NEW_BROKER
  • OFFLINE
  • PAGE_VERIFY
  • PARTNER
  • READ_ONLY
  • RECOVERY BULK_LOGGED
  • RECOVERY_SIMPLE
  • REMOTE_DATA_ARCHIVE
  • RESTRICTED_USER
  • SINGLE_USER
  • WITNESS

有些 ALTER DATABASE 陳述式 (例如 SET CONTAINMENT) 可能會暫時失敗,例如在自動化資料庫備份期間,或是在建立資料庫之後。 在此情況下,應重試 ALTER DATABASE 陳述式。 如需相關錯誤訊息的詳細資訊,請參閱<備註>一節。

如需詳細資訊,請參閱 ALTER DATABASE

SQL Server Agent

  • SQL 受控執行個體中目前不支援啟用和停用 SQL Server Agent。 SQL 代理程式一律會處於正在執行的狀態。
  • 不支援以閑置 CPU 為基礎的作業排程觸發程式。
  • SQL Server Agent 設定是唯讀狀態。 SQL 受控執行個體不支援 sp_set_agent_properties 程序。
  • 工作
    • 支援 T-SQL 作業步驟。
    • 支援下列複寫作業:
      • 交易記錄讀取器
      • 快照式
      • 散發者
    • 支援 SSIS 作業步驟。
    • 目前不支援其他類型的作業步驟:
      • 不支援合併複寫作業步驟。
      • 不支援佇列讀取器。
      • 尚不支援命令殼層。
    • SQL 受控執行個體無法存取外部資源,例如,透過 robocopy 的網路共用。
    • 不支援 SQL Server Analysis Services。
  • 部分支援通知。
  • 雖然您必須設定 Database Mail 設定檔,但仍支援電子郵件通知。 SQL Server Agent 可以只使用一個 Database Mail 設定檔,但其必須名為 AzureManagedInstance_dbmail_profile
    • 不支援呼叫器。
    • 不支援 NetSend。
    • 尚不支援警示。
    • 不支援 Proxy。
  • 不支援 EventLog。
  • 用戶必須直接對應至 Microsoft Entra 伺服器登入,才能建立、修改或執行 SQL Agent 作業。 例如,不屬於具有建立、修改或執行 SQL Agent 作業許可權的 Microsoft Entra 群組的使用者,將無法有效地執行這些動作。 這是因為 SQL 受控執行個體的模擬和 EXECUTE AS 限制
  • 不支援主要/目標 (MSX/TSX) 作業的多伺服器 管理員 還原功能。

如需有關 SQL Server Agent 的資訊,請參閱 SQL Server Agent

資料表

以下是不支援的資料表類型:

如需如何建立和更改資料表的相關資訊,請參閱 CREATE TABLEALTER TABLE

功能

BULK INSERT / OPENROWSET

SQL 受控執行個體無法存取檔案共用及 Windows 資料夾,因此必須從 Azure Blob 儲存體匯入這些檔案:

  • 從 Azure Blob 儲存體匯入檔案時,BULK INSERT 命令中需要 DATASOURCE。 請參閱大量插入
  • 當您從 Azure Blob 儲存體讀取檔案的內容時,OPENROWSET 函式中需要 DATASOURCE。 請參閱 OPENROWSET
  • OPENROWSET 可以用來從 Azure SQL Database、Azure SQL 受控執行個體或 SQL Server 執行個體讀取資料。 不支援其他來源,例如 Oracle 資料庫或 Excel 檔案。

CLR

SQL 受控執行個體無法存取檔案共用及 Windows 資料夾,因此會有下列限制:

Database Mail (db_mail)

  • sp_send_dbmail 無法使用 參數傳送附件 @file_attachments 。 無法從此程式存取本機文件系統和外部共用或 Azure Blob 儲存體。
  • 請參閱與 @query 參數和驗證相關的已知問題。

DBCC

SQL 受控執行個體中不支援已在 SQL Server 中啟用但未記載的 DBCC 陳述式。

  • 僅支援有限數目的全域追蹤旗標。 不支援工作階段層級 Trace flags。 請參閱追蹤旗標
  • DBCC TRACEOFFDBCC TRACEON 使用有限數目的全域追蹤旗標。
  • DBCC CHECKDB 搭配選項REPAIR_ALLOW_DATA_LOSS、REPAIR_FAST和REPAIR_REBUILD無法使用,因為資料庫無法在模式中 SINGLE_USER 設定 - 請參閱 ALTER DATABASE 差異。 潛在的資料庫損毀由 Azure 支援小組處理。 如果有任何資料庫損毀的指示,請與 Azure 支援連絡。

分散式交易

跨受控執行個體的 T-SQL 和 .NET 型分散式交易已正式發行。 #D49042DBEEC0E4940840BA14C28880A4C 的 DTC 支援其他案例,例如 XA 交易、受控實例與其他參與者之間的分散式交易等等,可在公開預覽中取得。

擴充的事件

不支援擴充事件 (XEvent) 的某些 Windows 特定目標:

  • 不支援 etw_classic_sync 目標。 將 .xel 檔案儲存在 Azure Blob 儲存體中。 請參閱 etw_classic_sync 目標
  • 不支援 event_file 目標。 將 .xel 檔案儲存在 Azure Blob 儲存體中。 請參閱 event_file 目標

外部程式庫

資料庫內部 R 與 Python 外部程式庫目前處於有限的公開預覽狀態。 請參閱 Azure SQL 受控執行個體中的機器學習服務 (預覽)

FILESTREAM 與 FileTable

  • 不支援 FILESTREAM 數據。
  • 資料庫不能包含具有 FILESTREAM 資料的檔案群組。
  • 不支援 FILETABLE
  • 資料表不能有 FILESTREAM 類型
  • 不支援下列函式:
    • GetPathLocator()
    • GET_FILESTREAM_TRANSACTION_CONTEXT()
    • PathName()
    • GetFileNamespacePat)
    • FileTableRootPath()

如需詳細資訊,請參閱 FILESTREAMFiletable

不支援語意搜尋

連結的伺服器

在 SQL 受控執行個體中,連結伺服器支援的目標數有限:

  • 支援的目標有 SQL 受控執行個體、SQL Database、Azure Synapse SQL 無伺服器和專用集區,以及 SQL Server 執行個體。
  • 不支援目標為檔案、Analysis Services 和其他 RDBMS。 請嘗試利用 BULK INSERTOPENROWSET 從 Azure Blob 儲存體匯入原生 CSV,做為檔案匯入的替代方案,或是利用 Azure Synapse Analytics 中的無伺服器 SQL 集區載入檔案。

作業:

Azure SQL 受控執行個體 上鏈接的伺服器支援 SQL 驗證和 Microsoft Entra 驗證

PolyBase

使用 Azure SQL 受控執行個體的資料虛擬化可讓您針對 Azure Data Lake Storage Gen2 或 Azure Blob 儲存體中所儲存檔案的資料執行 Transact-SQL (T-SQL) 查詢,並使用聯結將其與本機儲存的關聯式資料合併。 直接支援 Parquet 和分隔符號文字 (CSV) 檔案格式。 當查詢以個別資料列的形式傳回每份文件時,您可藉由指定 CSV 檔案格式,間接支援 JSON 檔案格式。 可以使用 JSON_VALUEOPENJSON 進一步剖析資料列。 如需 PolyBase 的一般資訊,請參閱 PolyBase

此外, CREATE EXTERNAL TABLE AS SELECT (CETAS) 可讓您將數據從 SQL 受控實例導出至外部記憶體帳戶。 您可以使用 CETAS,在 Parquet 或 CSV 檔案 Azure Blob 記憶體或 Azure Data Lake 儲存體 (ADLS) Gen2 上建立外部數據表。 CETAS 也可以平行匯出 T-SQL SELECT 語句的結果到建立的外部數據表。

複寫

  • 支援快照集和雙向複寫類型。 不支援合併式複寫、點對點複寫和可更新的訂閱。
  • 具有一些條件約束的事務複製可供 SQL 受管理執行個體 使用:
    • 所有類型的複寫參與者 (發行者、散發者、提取訂閱者和推送訂閱者) 都可以放在 SQL 受控執行個體上,但發行者和散發者必須同時位於雲端或皆為內部部署。
    • SQL 受控執行個體可以與最新版本的 SQL Server 進行通訊。 如需詳細資訊,請參閱 支援的版本矩陣
    • 異動複寫有一些額外的網路需求

如需有關設定異動複寫的詳細資訊,請參閱下列教學課程:

RESTORE 陳述式

  • 支援的語法:
    • RESTORE DATABASE
    • RESTORE FILELISTONLY
    • RESTORE HEADERONLY
    • RESTORE LABELONLY
    • RESTORE VERIFYONLY
  • 不支援的語法:
    • RESTORE LOGONLY
    • RESTORE REWINDONLY
  • 來源:
    • FROM URL (Azure Blob 儲存體) 是唯一支援的選項。
    • 不支援 FROM DISK/TAPE/備份裝置。
    • 不支援備份組。
  • 不支援 WITH 選項。 還原嘗試,包括 WITHDIFFERENTIALSTATSREPLACE等,將會失敗。

資料庫還原作業在 Azure SQL 受控執行個體 中是異步且可重試的。 如果連線失敗或逾時到期,您可能會在 SSMS 收到錯誤。 Azure SQL 受控執行個體 持續嘗試在背景還原資料庫,而且您可以使用sys.dm_exec_requestssys.dm_operation_status動態管理檢視來追蹤還原程序的進度。

系統會設定或覆寫下列資料庫選項,而且之後無法變更:

  • NEW_BROKER,如果 .bak 檔案中未啟用訊息代理程式的話。
  • ENABLE_BROKER,如果 .bak 檔案中未啟用訊息代理程式的話。
  • AUTO_CLOSE=OFF,如果.bak 檔案中的資料庫具有 AUTO_CLOSE=ON 的話。
  • RECOVERY FULL 如果.bak檔案中的資料庫具有 SIMPLEBULK_LOGGED 恢復模式,則為 。
  • 新增記憶體最佳化檔案群組並呼叫 XTP (如果來源 .bak 檔案中沒有的話)。
  • 任何現有的記憶體最佳化檔案群組都已重新命名為 XTP。
  • SINGLE_USERRESTRICTED_USER 選項會轉換成 MULTI_USER

限制:

  • 視損毀的類型而定,可能會還原損毀資料庫的備份,但在修正損毀之前,不會進行自動備份。 確定您在來源 SQL 執行個體上執行 DBCC CHECKDB,並使用備份 WITH CHECKSUM 以避免發生此問題。
  • .BAK還原包含本檔中所述之任何限制的資料庫檔案,無法在 FILESTREAMFILETABLE SQL 受管理執行個體 還原。
  • 無法還原包含多個備份組的 .BAK 檔案。
  • 無法還原包含多個記錄檔的 .BAK 檔案。
  • 備份若包含大於 8 TB 的資料庫、作用中的記憶體內部 OLTP 物件,或包含的檔案數超過每個執行個體 280 個檔案,則無法在一般用途的執行個體上進行還原。
  • 包含大於 4 TB 或記憶體內部 OLTP 物件的備份,其大小總計超過資源限制中所述的大小,無法在 業務關鍵 實例上還原。 如需 Restore 陳述式的相關資訊,請參閱 RESTORE 陳述式

重要

相同的限制適用於內建的時間點還原作業。 舉例來說,無法在業務關鍵執行個體上還原大於 4 TB 的一般用途資料庫。 具有記憶體內部 OLTP 檔案或超過 280 個檔案的業務關鍵資料庫,無法在一般用途執行個體上進行還原。

Service Broker

只有在 Azure SQL 受控執行個體之間,才支援跨執行個體的 Service Broker 訊息交換:

  • CREATE ROUTE:除了 LOCAL 或另一個 SQL 受控執行個體的 DNS 名稱以外,您不能將 CREATE ROUTEADDRESS 搭配使用。 連接埠一律為 4022。
  • ALTER ROUTE:除了 LOCAL 或另一個 SQL 受控執行個體的 DNS 名稱以外,您不能將 ALTER ROUTEADDRESS 搭配使用。 連接埠一律為 4022。

支援傳輸安全性,對話框安全性不是:

  • CREATE REMOTE SERVICE BINDING不支援 。

默認會啟用 Service Broker,且無法停用。 不支援下列 ALTER DATABASE 選項:

  • ENABLE_BROKER
  • DISABLE_BROKER

預存程序、函式和觸發程序

  • 一般用途層中不支援 NATIVE_COMPILATION
  • 不支援下列 sp_configure 選項:
    • allow polybase export
    • allow updates
    • filestream_access_level
    • remote access
    • remote data archive
    • remote proc trans
    • scan for startup procs
  • 下列sp_configure選項會被忽略,而且沒有任何作用:
    • Ole Automation Procedures
  • sp_execute_external_scripts僅支援 sql MI 機器學習 Services,否則sp_execute_external_scripts不支援 SQL 受管理執行個體。 請參閱 sp_execute_external_scripts
  • 不支援 xp_cmdshell。 請參閱 xp_cmdshell
  • 不支援 Extended stored procedures,包括 sp_addextendedprocsp_dropextendedproc 在內。 此功能位於 SQL Server 的淘汰路徑上,因此不支援。 如需詳細資訊,請參閱 擴充預存程序
  • 不支援 sp_attach_dbsp_attach_single_file_dbsp_detach_db。 請參閱 sp_attach_dbsp_attach_single_file_dbsp_detach_db

系統函數和變數

下列變數、函式和檢視會傳回不同的結果:

  • SERVERPROPERTY('EngineEdition') 傳回值 8。 此屬性只會識別出 SQL 受控執行個體。 請參閱 SERVERPROPERTY
  • SERVERPROPERTY('InstanceName') 會傳回 NULL,因為執行個體基於 SQL Server 而存在的概念不適用於 SQL 受控執行個體。 請參閱 SERVERPROPERTY('InstanceName')
  • @@SERVERNAME 會傳回完整的 DNS「可連線」名稱,例如 my-managed-instance.wcus17662feb9ce98.database.windows.net。 請參閱 @@SERVERNAME
  • SYS.SERVERS 會傳回完整的 DNS「可連線」名稱,例如 "name" 和 "data_source" 屬性的 myinstance.domain.database.windows.net。請參閱 SYS.SERVERS
  • @@SERVICENAME 會傳回 NULL,因為服務基於 SQL Server 而存在的概念不適用於 SQL 受控執行個體。 請參閱 @@SERVICENAME
  • 支援 SUSER_ID。 如果 Microsoft Entra 登入不在 中 sys.syslogins,則會傳回 NULL。 請參閱 SUSER_ID
  • 不支援 SUSER_SID。 傳回錯誤資料,這是暫時性的已知問題。 請參閱 SUSER_SID

環境條件約束

子網路

  • 您無法將任何其他資源(例如虛擬機)放在您已部署 SQL 受管理執行個體 的子網中。 使用不同的子網路來部署這些資源。
  • 子網路必須有足夠數目的可用 IP 位址。 最小值是在子網路中至少要有 32 個 IP 位址。
  • 您可以在區域中部署的虛擬核心數目和執行個體類型,會有一些條件約束和限制
  • 子網路必須套用網路設定

虛擬網路

  • 您可以使用資源模型來部署虛擬網路。 傳統模型不支援虛擬網路 (VNet) 部署。
  • 建立 SQL 受控實例之後,不支援將 SQL 受控實例或 VNet 移至另一個資源群組或訂用帳戶。
  • 針對裝載於 2020 年 9 月 22 日之前所建立之虛擬叢集中的 SQL 受控實例, 不支援 VNet 全域對等互連 。 您可以透過 ExpressRoute 或通過 VNet 閘道的 VNet 對 VNet 來連線到這些資源。

容錯移轉群組

系統資料庫不會複寫至容錯移轉群組中的次要執行個體。 因此,除非在輔助實例上手動建立對象,否則相依於系統資料庫之物件的案例在輔助實例上是不可能的。

tempdb

  • 在一般用途層上,tempdb 系統資料庫的檔案大小上限不能大於每個核心 24 GB。 商務關鍵層的 tempdb 大小上限受限於 SQL 受控執行個體儲存體大小。 在一般用途層上,tempdb 記錄檔大小限制為 120 GB。 如果其需要 tempdb 中每個核心超過 24 GB,或如果其產生超過 120 GB 的記錄資料,則某些查詢可能會傳回錯誤。
  • tempdb 一律分割成 12 個資料檔:1 個主要檔案,也稱為 master、數據檔,以及 11 個非主要數據檔。 無法變更檔案結構,而且無法將新的檔案新增至 tempdb
  • 不支援記憶體優化TempDB元數據,這是新的SQL Server 2019記憶體內部資料庫功能。
  • 無法在重新啟動或故障轉移之後自動建立tempdb資料庫中model建立的對象,因為tempdb不會從model資料庫取得其初始物件清單。 每次重新開機或容錯移轉之後,您必須在 tempdb 手動建立物件。

msdb

SQL 受控執行個體中 msdb 系統資料庫的下列結構描述,必須由各自預先定義的角色所擁有:

重要

變更客戶預先定義的角色名稱、架構名稱和架構擁有者會影響服務的正常作業。 對這些項目進行的任何變更,一偵測到,就會還原回預先定義的值,或在下次服務更新時更新為最新的,以確保服務作業正常運作。

錯誤記錄

SQL 受控執行個體會將詳細資訊放置在錯誤記錄中。 有許多內部系統事件記錄在錯誤記錄檔中。 使用自訂程序來讀取篩選掉某些不相關項目的錯誤記錄檔。 如需詳細資訊,請參閱 SQL 受控執行個體 – sp_readmierrorlog 或適用於 Azure Data Studio 的 SQL 受控執行個體延伸模組 (預覽)

不支援變更保留的錯誤記錄數目。