sys.sp_create_event_stream_group(Transact-SQL)

適用於: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL 受控執行個體Microsoft Fabric 中的 SQL 資料庫

為 SQL Server 2025(17.x)引入的 變更事件串流(CES) 功能建立事件群組串流。

備註

變更事件串流目前處於 預覽階段,且 在不同產品間的支援性存在差異。 在預覽期間,此功能可能會變更。

Transact-SQL 語法慣例

語法

sys.sp_create_event_stream_group
    [ @stream_group_name = ] N'stream_group_name'
    , [ @destination_type = ] N'destination_type'
    , [ @destination_location = ] N'destination_location'
    , [ @destination_credential = ] N'destination_credential'
    [ , [ @max_message_size_kb = ] max_message_size_kb ]
    [ , [ @partition_key_scheme = ] N'partition_key_scheme' ]
    [ , [ @partition_key_column_name = ] N'partition_key_column_name' ]
    [ , [ @encoding = ] N'encoding' ]
[ ; ]

論點

[ @stream_group_name = ] N'stream_group_name'

指定您要建立的事件資料流群組名稱。 @stream_group_name 是 系統名稱,沒有預設,也不可能 NULL。

[ @destination_type = ] N'destination_type'

指定串流目的地類型。 @destination_type 是 系統名稱,沒有預設,也不可能 NULL。

Important

AMQP 協定已被棄用。 對於新的串流群組,請使用 AzureEventHubs (Azure SQL Database) 或 AzureEventHubsApacheKafka (Azure SQL 受控執行個體, SQL Server 2025)。 詳情請參見 AMQP 協定棄用。

@destination_type 可以是以下其中一個值:

價值觀 支援的項目 Notes
AzureEventHubs Azure SQL Database,
Microsoft Fabric 中的 SQL 資料庫
這些平台上唯一被接受的價值。 使用卡夫卡協議。
AzureEventHubsApacheKafka Azure SQL 受控執行個體,
SQL Server 2025
推薦給這些平台上的新直播群組。 使用卡夫卡協議。
AzureEventHubsAmqp Azure SQL 受控執行個體,
SQL Server 2025
Deprecated. 採用AMQP協定。 避免加入新的串流群組。

[ @destination_location = ] N'destination_location'

描述 Azure 事件中樞命名空間和實例名稱。 @destination_location 是 nvarchar(4000),沒有預設值,也不可能 NULL。

針對 Apache Kafka 通訊協定,指定埠。

[ @destination_credential = ] N'destination_credential'

指定要使用的資料庫範圍認證名稱。 @destination_credential 是 系統名稱,沒有預設,也不可能 NULL。

[ @max_message_size_kb = ] max_message_size_kb

若另有指定,則定義最大 CES 訊息大小(以千位元組為單位)。 @max_message_size_kb 為 int,且不能為 NULL。 如果訊息超過指定的大小上限,則會分割。 這是選擇性參數。

@max_message_size_kb 具有下列特性:

價值觀 說明
128 (最小值) 對應 128 KB
256 (預設值) 對應 256 KB
1024 (最大值) 對應 1 MB

@max_message_size_kb參數應該符合目的地的限制。 例如,標準層和進階層的 Azure 事件中樞訊息大小上限為 1 MB。 欲了解更多資訊,請參閱 Azure 事件中樞 quotas。

[ @partition_key_scheme = ] N'partition_key_scheme'

定義數據分割的類型。 @partition_key_scheme 是 sysname,而且不能是 NULL。

@partition_key_scheme 可以是下列其中一個值:

價值觀 說明
None (預設值) 未指定數據分割,因此 事件會使用迴圈配置資源策略,由事件中樞指派給分割區。
StreamGroup 數據分割是由數據流群組完成,因此數據流群組中的所有數據表都會串流至相同的分割區。
Table 分割是以資料表進行,以確保同一資料表中串流群組的事件會被傳送到同一分割區。 分割鍵是內部資料表識別碼。
Column 分割是依據參數指定的 partition_key_column_name 欄位值來進行。 事件會根據該事件所發布的列中該欄位的值分配到分割區。

[ @partition_key_column_name = ] N'partition_key_column_name'

定義當 @partition_key_scheme 設定 Column為 時,要用於分割的數據行。 @partition_key_column_name 是 sysname,而且不能是 NULL。

針對包含架構名稱和數據行名稱的數據行,使用兩部分名稱。 例如,有效的值為 dbo.Addresses。

[ @encoding = ] N'encoding'

指定訊息編碼。 @encoding 是 sysname,而且不能是 NULL。

@encoding 可以是以下其中一種值:

  • JSON (預設值)
  • Binary

回傳代碼數值

0 (成功) 或 1 (失敗)。

權限

擁有 CONTROL 資料庫權限、 db_owner 資料庫角色成員資格或 系統管理員 伺服器角色成員的使用者可執行此程序。

範例

A。 Create event stream group on Azure SQL Database

EXECUTE sys.sp_create_event_stream_group
    @stream_group_name = N'myStreamGroup',
    @destination_type = N'AzureEventHubs',
    @destination_location = N'myEventHubsNamespace.servicebus.windows.net:9093/myEventHubsInstance',
    @destination_credential = MyDatabaseScopedCredentialForCes;

B. Create event stream group on Azure SQL 受控執行個體 or SQL Server 2025

EXECUTE sys.sp_create_event_stream_group
    @stream_group_name = N'myStreamGroup',
    @destination_type = N'AzureEventHubsApacheKafka',
    @destination_location = N'myEventHubsNamespace.servicebus.windows.net:9093/myEventHubsInstance',
    @destination_credential = MyDatabaseScopedCredentialForCes;