SQL Server 至 Azure SQL 受控執行個體移轉的評估規則

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

移轉工具會執行數個評量規則來驗證來源 SQL Server 實例。 這些規則會識別將 SQL Server 資料庫遷移至 Azure SQL 受控執行個體之前必須先解決的問題。

本文提供相關的規則清單,用以評估將 SQL Server 資料庫遷移至 Azure SQL 受控執行個體的可行性。

規則摘要

規則標題 層級 類別 詳細資料
AnalysisCommandJob 執行個體 警告 Azure SQL 受控執行個體不支援 AnalysisCommand 作業步驟。
AnalysisQueryJob 執行個體 警告 Azure SQL 受控執行個體不支援 AnalysisQuery 作業步驟。
AssemblyFromFile 資料庫 問題 Azure SQL 受控執行個體不支援將 'CREATE ASSEMBLY' 和 'ALTER ASSEMBLY' 用於檔案參數。
BulkInsert 資料庫 問題 Azure SQL 受控執行個體不支援將 BULK INSERT 用於非 Azure Blob 資料來源。
ClrStrictSecurity 資料庫 警告 標記為 SAFE 或 EXTERNAL_ACCESS 的 CLR 組件會被視為 UNSAFE。
ComputeClause 資料庫 警告 COMPUTE 子句已不受支援且已移除。
CryptographicProvider 資料庫 問題 發現使用了 CREATE CRYPTOGRAPHIC PROVIDER 或 ALTER CRYPTOGRAPHIC PROVIDER。 Azure SQL 受控執行個體不支援此功能。
DatabasePrincipalAlias 資料庫 問題 SYS.DATABASE_PRINCIPAL_ALIASES 已不受支援且已移除。
DbCompatLevelLowerThan100 資料庫 警告 不支援低於 100 的資料庫相容性層級。
DisableDefCNSTCHK 資料庫 問題 SET 選項 DISABLE_DEF_CNST_CHK 已不受支援且已移除。
FastFirstRowHint 資料庫 警告 FASTFIRSTROW 查詢提示已不受支援且已移除。
FileStream 資料庫 問題 Azure SQL 受控執行個體 不支援 FILESTREAM 和 FileTable。
LinkedServerWithNonSQLProvider 資料庫 問題 Azure SQL 受控執行個體不支援將連結的伺服器用於非 SQL Server 提供者。
MergeJob 執行個體 警告 Azure SQL 受控執行個體不支援合併作業步驟。
MIDatabaseSize 資料庫 問題 Azure SQL 受控執行個體 不支援大於16 TB的資料庫大小。
MIHeterogeneousMSDTCTransactSQL 資料庫 問題 Azure SQL 受控執行個體不支援將 BEGIN DISTRIBUTED TRANSACTION 用於非 SQL Server 遠端伺服器。
MIHomogeneousMSDTCTransactSQL 資料庫 問題 Azure SQL 受控執行個體支援跨多個伺服器的 BEGIN DISTRIBUTED TRANSACTION。
MIInstanceSize 執行個體 警告 Azure SQL 受控執行個體 中的實例記憶體大小上限不能大於8 TB。
MultipleLogFiles 資料庫 問題 Azure SQL 受控執行個體 不支援具有多個記錄檔的資料庫。
NextColumn 資料庫 問題 名為 NEXT 的數據表和數據行會導致 Azure SQL 受控執行個體 發生錯誤。
NonANSILeftOuterJoinSyntax 資料庫 警告 非 ANSI 樣式左方外部聯結已不受支援且已移除。
NonANSIRightOuterJoinSyntax 資料庫 警告 非 ANSI 樣式右方外部聯結已不受支援且已移除。
NumDbExceeds100 執行個體 警告 Azure SQL 受控執行個體的每個執行個體最多可支援 100 個資料庫。
OpenRowsetWithNonBlobDataSourceBulk 資料庫 問題 Azure SQL 受控執行個體不支援將大量作業中使用的 OpenRowSet 用於非 Azure Blob 儲存體資料來源。
OpenRowsetWithNonSQLProvider 資料庫 問題 Azure SQL 受控執行個體不支援將 OpenRowSet 用於非 SQL 提供者。
PowerShellJob 執行個體 警告 Azure SQL 受控執行個體不支援 PowerShell 作業步驟。
QueueReaderJob 執行個體 警告 Azure SQL 受控執行個體不支援佇列讀取器作業步驟。
RAISERROR 資料庫 警告 舊版樣式 RAISERROR 呼叫應取代為新式對等項目。
SqlMail 資料庫 警告 SQL Mail 已不受支援。
SystemProcedures110 資料庫 警告 偵測到參考的語句已移除 Azure SQL 受控執行個體 中無法使用的系統預存程式。
TraceFlags 執行個體 警告 發現在 Azure SQL 受控執行個體中不支援的追蹤旗標。
TransactSqlJob 執行個體 警告 TSQL 作業步驟包含在 Azure SQL 受控執行個體中不支援的命令。
WindowsAuthentication 執行個體 警告 Azure SQL 受控執行個體 不支援與 Windows 驗證 對應的資料庫使用者(整合式安全性)。
XpCmdshell 資料庫 問題 Azure SQL 受控執行個體 不支援xp_cmdshell。

AnalysisCommand 作業

標題:Azure SQL 受控執行個體不支援 AnalysisCommand 作業步驟。
類別:警告

描述
這是執行 Analysis Services 命令的作業步驟。 Azure SQL 受控執行個體不支援 AnalysisCommand 作業步驟。

建議
檢閱 Azure Migrate 中受影響的物件一節,以查看所有使用 Analysis Service Command 作業步驟的作業,並評估是否可以移除作業步驟或受影響的物件。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體中的 SQL Server Agent 差異

AnalysisQuery 作業

標題:Azure SQL 受控執行個體不支援 AnalysisQuery 作業步驟。
類別:警告

描述
這是執行 Analysis Services 查詢的作業步驟。 Azure SQL 受控執行個體不支援 AnalysisQuery 作業步驟。

建議
檢閱 Azure Migrate 中受影響的物件一節,以查看所有使用 Analysis Service Query 作業步驟的作業,並評估是否可以移除作業步驟或受影響的物件。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體中的 SQL Server Agent 差異

檔案中的組件

標題:Azure SQL 受控執行個體不支援將 'CREATE ASSEMBLY' 和 'ALTER ASSEMBLY' 用於檔案參數。
類別:問題

說明
Azure SQL 受控執行個體 不支援CREATE ASSEMBLYALTER ASSEMBLY具有檔案參數。 支援二進位參數。 如需使用 file 參數的特定物件,請參閱受影響的物件一節。

建議
使用 CREATE ASSEMBLYALTER ASSEMBLY 搭配檔案參數檢閱物件。 如果需要任何這類物件,請將檔案參數轉換為二進位參數。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體中的 CLR 差異

BULK INSERT

標題:Azure SQL 受控執行個體不支援將 BULK INSERT 用於非 Azure Blob 資料來源。
類別:問題

說明
Azure SQL 受控執行個體 無法存取檔案共用或 Windows 資料夾。 如需未參考 Azure Blob 之 BULK INSERT 語句的特定用途,請參閱一節。 具有 「BULK INSERT」的物件,其中來源在移轉至 Azure SQL 受控執行個體後無法運作 Azure Blob 儲存體。

建議
移轉至 Azure SQL 受控執行個體 時,您必須轉換使用本機檔案或檔案共用的 BULK INSERT 語句,以改用來自 Azure Blob 儲存體 的檔案。

詳細資訊:Azure SQL 受控執行個體中的大量插入和 OPENROWSET 差異

CLR 安全性

標題:標記為 SAFE 或 EXTERNAL_ACCESS 的 CLR 組件會被視為 UNSAFE
類別:警告

描述
Azure SQL 受控執行個體中強制執行 CLR 嚴格安全性模式。 依預設會啟用此模式,並且為包含使用者定義的 CLR 組件 (標示為 SAFE 或 EXTERNAL_ACCESS) 的資料庫導入重大變更。

建議
CLR 使用 .NET Framework 中的程式碼存取安全性 (CAS),而這不再作為安全性界限受支援。 從 SQL Server 2017 (14.x) 資料庫引擎開始導入了名為 CLR 嚴格安全性的 sp_configure 選項,以增強 CLR 組件的安全性。 依預設會啟用 CLR 嚴格安全性,並將 SAFE 和 EXTERNAL_ACCESS CLR 組件視同標示了 UNSAFE。 停用 CLR 嚴格安全性時,使用 PERMISSION_SET = SAFE 所建立的 CLR 組件或許能存取外部系統資源、呼叫 Unmanaged 程式碼,以及需要 sysadmin 權限。 啟用嚴格安全性之後,將無法載入任何未簽署的組件。 此外,如果資料庫具有 SAFE 或 EXTERNAL_ACCESS 組件,則可以完成 RESTORE 或 ATTACH DATABASE 陳述式,但是組件可能無法載入。 若要載入組件,您必須改變或置放並重新建立每個組件,以便使用憑證或非對稱金鑰簽署,該金鑰有具有伺服器 UNSAFE ASSEMBLY 權限的對應登入。

詳細資訊:CLR 嚴格安全性

COMPUTE 子句

標題:COMPUTE 子句已不受支援且已移除。
類別:警告

描述
COMPUTE 子句會產生在結果集結尾顯示為其他摘要資料行的總計。 不過,Azure SQL 受控執行個體已不再支援此子句。

建議
您必須改用 ROLLUP 運算子來重寫 T-SQL 模組。 下列程式代碼示範如何以 ROLLUP 取代 COMPUTE:

USE AdventureWorks2022;GO;

SELECT SalesOrderID,
    UnitPrice,
    UnitPriceDiscount
FROM Sales.SalesOrderDetail
ORDER BY SalesOrderID COMPUTE SUM(UnitPrice),
    SUM(UnitPriceDiscount) BY SalesOrderID GO;

SELECT SalesOrderID,
    UnitPrice,
    UnitPriceDiscount,
    SUM(UnitPrice) AS UnitPrice,
    SUM(UnitPriceDiscount) AS UnitPriceDiscount
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID,
    UnitPrice,
    UnitPriceDiscount
WITH ROLLUP;

詳細資訊:SQL Server 中已中止的資料庫引擎功能

密碼編譯提供者

標題:發現使用了 CREATE CRYPTOGRAPHIC PROVIDER 或 ALTER CRYPTOGRAPHIC PROVIDER,這在 Azure SQL 受控執行個體中不支援。
類別:問題

說明
Azure SQL 受控執行個體 不支援 CRYPTOGRAPHIC PROVIDER 語句,因為它無法存取檔案。 如需 CRYPTOGRAPHIC PROVIDER 語句的特定用法,請參閱受影響的物件一節。 移轉至 Azure SQL 受控執行個體 之後,具有 'CREATE CRYPTOGRAPHIC PROVIDER' 或 'ALTER CRYPTOGRAPHIC PROVIDER' 的對象無法正常運作。

建議
檢閱具有 'CREATE CRYPTOGRAPHIC PROVIDER' 或 'ALTER CRYPTOGRAPHIC PROVIDER' 的物件。 如果需要任何這類物件,請移除這些功能的使用。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體中的密碼編譯提供者差異

資料庫相容性

標題:不支援低於 100 的資料庫相容性層級
類別:警告

說明
資料庫相容性層級是協助資料庫現代化的重要工具,可讓SQL Server 資料庫引擎 升級,同時藉由維護相同的升級前資料庫相容性層級來維持連接應用程式的功能狀態。 Azure SQL 受控執行個體不支援低於 100 的相容性層級。 在 Azure SQL 受控執行個體上還原相容性層級低於 100 的資料庫時,相容性層級會升級至 100。

建議
在 Azure SQL 受控執行個體上的資料庫相容性層級升級至 100 時,評估應用程式功能是否完整。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體中支援的相容性層級

資料庫主體別名

標題:SYS.DATABASE_PRINCIPAL_ALIASES 已不受支援且已移除。
類別:問題

描述
SYS.DATABASE_PRINCIPAL_ALIASES 在 Azure SQL 受控執行個體中已不受支援且已移除。

建議
請使用角色,而非別名。

詳細資訊:SQL Server 中已中止的資料庫引擎功能

DISABLE_DEF_CNST_CHK 選項

標題:SET 選項 DISABLE_DEF_CNST_CHK 已不受支援且已移除。
類別:問題

描述
SET 選項 DISABLE_DEF_CNST_CHK 在 Azure SQL 受控執行個體中已不受支援且已移除。

詳細資訊:SQL Server 中已中止的資料庫引擎功能

FASTFIRSTROW 提示

標題:FASTFIRSTROW 查詢提示已不受支援且已移除。
類別:警告

描述
FASTFIRSTROW 查詢提示在 Azure SQL 受控執行個體中已不受支援且已移除。

建議
不要使用 FASTFIRSTROW 查詢提示,而改用 OPTION (FAST n)。

詳細資訊:SQL Server 中已中止的資料庫引擎功能

FILESTREAM

標題:Azure SQL 受控執行個體 不支援 FILESTREAM 和 FileTable。
類別:問題

說明
#D1FD4FC33EB6046FBA0279BAE030E019A 不支援 FILESTREAM 功能,可讓您在 NTFS 檔案系統中儲存非結構化數據,例如文字檔、影像和影片。 無法移轉此資料庫,因為包含 FILESTREAM 檔案群組的備份無法在 Azure SQL 受控執行個體 上還原。

建議
在 Azure SQL 受控執行個體中將非結構化檔案上傳至 Azure Blob 儲存體,並儲存與這些檔案相關的中繼資料 (名稱、類型、URL 位置、儲存體金鑰等)。 您可能必須重新設計您的應用程式,以啟用對 Azure SQL 受控執行個體輸入和輸出 Blob 的功能。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:對 SQL Azure 輸入和輸出 Blob 的部落格

異質 MS DTC

標題:Azure SQL 受控執行個體不支援將 BEGIN DISTRIBUTED TRANSACTION 用於非 SQL Server 遠端伺服器。
類別:問題

說明
如果遠端伺服器不是 SQL Server,則 Azure SQL 受控執行個體 不支援 Transact SQL BEGIN DISTRIBUTED TRANSACTION 所啟動的分散式交易,且由 Microsoft Distributed Transaction Coordinator (MS DTC) 管理。

建議
檢閱 Azure Migrate 中受影響的物件一節,以查看所有使用 BEGIN DISTRUBUTED TRANSACTION 的物件。 請考慮將參與者資料庫移轉至支援跨多個執行個體的分散式交易的 Azure SQL 受控執行個體。 若需詳細資訊,請見 Azure SQL 受控執行個體的跨多個伺服器的交易

或者,遷移至 Azure 虛擬機器上的 SQL Server。

同質 MS DTC

標題:Azure SQL 受控執行個體支援跨多個伺服器的 BEGIN DISTRIBUTED TRANSACTION。
類別:問題

描述
支援將由 Transact SQL BEGIN DISTRIBUTED TRANSACTION 啟動,並且由 Microsoft 分散式交易協調器 (MS DTC) 管理的分散式交易跨多個伺服器用於 Azure SQL 受控執行個體。

建議
檢閱 Azure Migrate 中受影響的物件一節,以查看所有使用 BEGIN DISTRUBUTED TRANSACTION 的物件。 請考慮將參與者資料庫移轉至支援跨多個執行個體的分散式交易的 Azure SQL 受控執行個體。 若需詳細資訊,請見 Azure SQL 受控執行個體的跨多個伺服器的交易

或者,遷移至 Azure 虛擬機器上的 SQL Server。

連結的伺服器 (非 SQL 提供者)

標題:Azure SQL 受控執行個體不支援將連結的伺服器用於非 SQL Server 提供者。
類別:問題

描述
連結的伺服器可讓 SQL Server 資料庫引擎對 SQL Server 執行個體以外的 OLE DB 資料來源執行命令。 Azure SQL 受控執行個體不支援將連結的伺服器用於非 SQL Server 提供者。

建議
如果遠端伺服器提供者不是 Oracle、Sybase 等非 SQL Server,則 Azure SQL 受控執行個體 不支援連結的伺服器功能。

建議您執行下列動作,以免除連結伺服器的需求:

  • 識別來自遠端非 SQL 伺服器的相依資料庫,並考慮將這些資料庫移至要移轉的資料庫。
  • 將相依資料庫移轉至支持的目標,例如 SQL 受管理執行個體、SQL 資料庫、Azure Synapse 和 SQL Server 實例。
  • 考慮在 Azure SQL 受控執行個體與 Azure 虛擬機器上的 SQL Server (SQL VM) 之間建立連結伺服器。 然後從 SQL VM 建立連結的伺服器至 Oracle、Sybase 等。此方法確實牽涉到兩個躍點,但可作為暫時的因應措施。
  • 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體中的連結伺服器差異

合併作業

標題:Azure SQL 受控執行個體不支援合併作業步驟。
類別:警告

描述
這是啟動複寫合併代理程式的作業步驟。 「複寫合併代理程式」是一個公用程式可執行檔,它會將資料庫資料表中保存的初始快照集套用至「訂閱者」。 它也會合併建立初始快照集之後在發行者端發生的累加數據變更,並根據您設定的規則,或使用您建立的自定義解析程式來協調衝突。 Azure SQL 受控執行個體不支援合併作業步驟。

建議
檢閱 Azure Migrate 中受影響的物件一節,以查看所有使用合併作業步驟的作業,並評估是否可以移除作業步驟或受影響的物件。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體中的 SQL Server Agent 差異

MI 資料庫大小

標題:Azure SQL 受控執行個體不支援大於 16 TB 的資料庫大小。
類別:問題

描述
資料庫的大小超過執行個體保留儲存體上限。 無法選取此資料庫進行移轉,因為其大小超過允許的限制。

建議
評估資料是否可封存、壓縮或分區至多個資料庫。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體的硬體特性

MI 執行個體大小

標題:Azure SQL 受控執行個體中的執行個體儲存體大小上限不可大於 8 TB。
類別:警告

描述
所有資料庫的大小超過執行個體保留儲存體上限。

建議
如果所有資料庫必須存在於相同的執行個體上,請考慮將資料庫遷移至不同的 Azure SQL 受控執行個體,或遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體的硬體特性

多個記錄檔

標題:Azure SQL 受控執行個體不支援多個記錄檔。
類別:問題

描述
SQL Server 允許資料庫記錄至多個檔案。 此資料庫有多個記錄檔,Azure SQL 受控執行個體 不支援此記錄檔。 **此資料庫無法遷移,因為無法在 Azure SQL 受控執行個體上還原備份。
**

建議
Azure SQL 受控執行個體僅支援每個資料庫一個記錄。 將此資料庫遷移至 Azure 之前,您必須留下其中一個記錄檔,而將其餘的全部刪除:

ALTER DATABASE [database_name] REMOVE FILE [log_file_name]

詳細資訊:Azure SQL 受控執行個體中不支援的資料庫選項

下一個資料行

標題:名為 NEXT 的資料表和資料行會導致 Azure SQL 受控執行個體發生錯誤。
類別:問題

描述
偵測到名為 NEXT 的資料表或資料行。 在 Microsoft SQL Server 中導入的序列會使用 ANSI 標準 NEXT VALUE FOR 函式。 若資料表或資料行的名稱為 NEXT,且資料行的別名為省略了 ANSI 標準 AS 的 VALUE,則可能會造成錯誤。

建議
設定資料表或資料行的別名時,請將陳述式重寫為包含 ANSI 標準 AS 關鍵字。 例如,當數據行命名為 NEXT 且該數據行別名為 VALUE 時,查詢 SELECT NEXT VALUE FROM TABLE 會造成錯誤,而且應該重寫為 SELECT NEXT AS VALUE FROM TABLE。 同樣地,針對名為 NEXT 且別名為 VALUE 的數據表,查詢 SELECT Col1 FROM NEXT VALUE 會造成錯誤,而且應該重寫為 SELECT Col1 FROM NEXT AS VALUE。

非 ANSI 樣式左方外部聯結

標題:非 ANSI 樣式左方外部聯結已不受支援且已移除。
類別:警告

描述
非 ANSI 樣式左方外部聯結在 Azure SQL 受控執行個體中已不受支援且已移除。

建議
使用 ANSI 聯結語法。

詳細資訊:SQL Server 中已中止的資料庫引擎功能

非 ANSI 樣式右方外部聯結

標題:非 ANSI 樣式右方外部聯結已不受支援且已移除。
類別:警告

描述
非 ANSI 樣式右方外部聯結在 Azure SQL 受控執行個體中已不受支援且已移除。

詳細資訊:SQL Server 中已中止的資料庫引擎功能

建議
使用 ANSI 聯結語法。

資料庫超過100個

標題:Azure SQL 受控執行個體的每個執行個體最多可支援 100 個資料庫。
類別:警告

描述
Azure SQL 受控執行個體中支援的資料庫數目上限為 100,除非達到執行個體儲存體大小限制。

建議
如果所有資料庫必須存在於相同的執行個體上,請考慮將資料庫遷移至不同的 Azure SQL 受控執行個體,或遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體資源限制

OPENROWSET (非 BLOB 數據源)

標題:Azure SQL 受控執行個體不支援將大量作業中使用的 OpenRowSet 用於非 Azure Blob 儲存體資料來源。
類別:問題

描述
OPENROWSET 支援透過內建 BULK 提供者執行大量作業,可讓檔案資料被讀取,並且當做資料列集傳回。 Azure SQL 受控執行個體 不支援具有非 Azure Blob 記憶體數據源的 OPENROWSET。

建議
Azure SQL 受控執行個體 無法存取檔案共用和 Windows 資料夾,因此必須從 Azure Blob 儲存體 匯入檔案。 因此,OPENROWSET 函式中僅支援 Blob 類型 DATASOURCE。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體中的大量插入和 OPENROWSET 差異

OPENROWSET (非 SQL 提供者)

標題:Azure SQL 受控執行個體不支援將 OpenRowSet 用於非 SQL 提供者。
類別:問題

描述
這個方法是存取連結伺服器資料表的另一個方法,而且是使用 OLE DB 來連接和存取遠端資料的單次特定方法。 Azure SQL 受控執行個體不支援將 OpenRowSet 用於非 SQL 提供者。

建議
OPENROWSET 函式只可用來在 SQL Server 執行個體 (受控、內部部署或在虛擬機器中) 上執行查詢。 支援提供者 SQLNCLISQLNCLI11SQLOLEDBMSOLEDBSQL (建議)。 新部署建議使用 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server

建議動作是識別來自遠端非 SQL Server 的相依資料庫,並考慮將這些資料庫移至要移轉的實例。

詳細資訊:Azure SQL 受控執行個體中的大量插入和 OPENROWSET 差異

PowerShell 作業

標題:Azure SQL 受控執行個體不支援 PowerShell 作業步驟。
類別:警告

描述
這是執行 PowerShell 指令碼的作業步驟。 Azure SQL 受控執行個體不支援 PowerShell 作業步驟。

建議
檢閱 Azure Migrate 中受影響的物件一節,以查看所有使用 PowerShell 作業步驟的作業,並評估是否可以移除作業步驟或受影響的物件。 評估是否可使用 Azure 自動化。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體中的 SQL Server Agent 差異

佇列讀取器作業

標題:Azure SQL 受控執行個體不支援佇列讀取器作業步驟。
類別:警告

描述
這是啟動「複寫佇列讀取器代理程式」的作業步驟。 「複寫佇列讀取器代理程式」是一個可執行檔,會讀取儲存在 Microsoft SQL Server 佇列或 Microsoft Message 佇列中的訊息,然後將這些訊息套用至發行者。 佇列讀取器代理程式可搭配允許佇列更新的快照式和交易式發行集使用。 Azure SQL 受控執行個體不支援佇列讀取器作業步驟。

建議
檢閱 Azure Migrate 中受影響的物件區段,以查看使用佇列讀取器作業步驟的所有作業,並評估是否可以移除作業步驟或受影響的物件。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體中的 SQL Server Agent 差異

RAISERROR

標題:舊版樣式 RAISERROR 呼叫應取代為新式對等項目。
類別:警告

說明
類似下列範例的 RAISERROR 呼叫稱為舊版樣式,因為它們不包含逗號和括號。 RAISERROR 50001 'this is a test'. 這個呼叫 RAISERROR 的方法在 Azure SQL 受控執行個體中已不受支援且已移除。

建議
使用目前的 RAISERROR 語法重寫陳述式,或評估新式方法 BEGIN TRY { } END TRY BEGIN CATCH { THROW; } END CATCH 是否可行。

詳細資訊:SQL Server 中已中止的資料庫引擎功能

SQL Mail

標題:SQL Mail 已不受支援。
類別:警告

描述
SQL Mail 在 Azure SQL 受控執行個體中已不受支援且已移除。

建議
使用 Database Mail。

詳細資訊:SQL Server 中已中止的資料庫引擎功能

SystemProcedures110

標題:偵測到陳述式參考了已移除而無法在 Azure SQL 受控執行個體中使用的系統預存程序。
類別:警告

說明
在不支援的系統和擴充預存程式之後,無法在 Azure SQL 受控執行個體 - sp_dboption、、sp_addserversp_activedirectory_objsp_activedirectory_scpsp_dropaliassp_activedirectory_start中使用。

建議
移除對不受支援、且已從 Azure SQL 受控執行個體中移除的系統程序的參考。

詳細資訊:SQL Server 中已中止的資料庫引擎功能

Transact-SQL 作業

標題:TSQL 作業步驟包含在 Azure SQL 受控執行個體中不支援的命令
類別:警告

說明
這是在排程時間執行 Transact-SQL 腳本的作業步驟。 TSQL 作業步驟包含不支援的命令,Azure SQL 受控執行個體 不支援。

建議
檢閱 Azure Migrate 中受影響的物件一節,以查看 Azure SQL 受控執行個體 中包含不支援命令的所有作業,並評估是否可以移除作業步驟或受影響的物件。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體中的 SQL Server Agent 差異

追蹤旗標

標題:發現在 Azure SQL 受控執行個體中不支援的追蹤旗標
類別:警告

描述
Azure SQL 受控執行個體僅支援有限數量的全域追蹤旗標。 不支援工作階段追蹤旗標。

建議
檢閱 Azure Migrate 中受影響的物件一節,以查看 Azure SQL 受控執行個體 中不支援的所有追蹤旗標,並評估是否可以移除它們。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:追蹤旗標

Windows 驗證

標題:Azure SQL 受控執行個體不支援與 Windows 驗證 (整合式安全性) 對應的資料庫使用者
類別:警告

描述
Azure SQL 受控執行個體支援兩種類型的驗證:

  • SQL 驗證,需用到使用者名稱和密碼
  • Microsoft Entra 驗證,其使用由 Microsoft Entra ID 所管理的身分識別(先前稱為 Azure Active Directory),並受到受控和整合網域的支援。

Azure SQL 受控執行個體 不支援與 Windows 驗證(整合式安全性)對應的資料庫使用者。

建議
將本機 Active Directory 與 Microsoft Entra ID 同盟。 然後,Windows 身分識別可以取代為對等的 Microsoft Entra 身分識別。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:SQL 受控執行個體安全性功能

XP_cmdshell

標題:xp_cmdshellAzure SQL 受控執行個體 不支援。
類別:問題

描述
Azure SQL 受控執行個體不支援會繁衍 Windows 命令殼層,並傳入字串以執行的 Xp_cmdshell。

建議
檢閱 Azure Migrate 中受影響的物件一節,以查看所有 xp_cmdshell 使用的物件,並評估是否可以移除或受影響對象的參考 xp_cmdshell 。 請考慮探索可提供雲端式自動化和設定服務的 Azure 自動化。 或者,遷移至 Azure 虛擬機器上的 SQL Server。

詳細資訊:Azure SQL 受控執行個體中的預存程序差異