NSEventSubmitBatch<EventClassName> (Transact-SQL)

新建一个事件批次,从查询中获取一组事件,然后提交这些事件,根据需要运行后期处理查询,然后关闭此事件批次。使用查询作为事件源时,您可以一次提交多个事件,这与 NSEventWriteEventClassName 存储过程不同。

语法

[ schema_name . ] SEventSubmitBatchEventClassName
    [ @ProviderName = ] 'event_provider_name',
    [ @EventsQuery = ] 'selection_query',
    [ @PostQuery = ] 'post_processing_query' 

参数

[ @ProviderName = ] 'provider_name'

提交事件的事件提供程序名称。provider_name 的数据类型为 nvarchar(255),并且必须是在应用程序定义文件 (ADF) 中指定的事件提供程序之一。

[ @EventsQuery = ] 'selection_query'

Transact-SQL 查询的文本,用于选择作为事件提交的记录。查询生成的记录的架构必须与其提交至的事件表架构匹配。selection_query 的数据类型为 nvarchar(4000)

[ @PostQuery = ] 'post_processing_query'

Transact-SQL 查询的文本,用于执行任何后期处理清理或状态维护(如更新历史记录表或删除任何临时对象)。post_processing_query 的数据类型为 nvarchar(4000)

返回代码值

0(成功)或 1(失败)

结果集

列名 数据类型 说明

EventCount

bigint

事件批次中提交的事件数。此数字通过查询事件表获得。

备注

Microsoft SQL Server 创建实例时,Notification Services 将在应用程序数据库中创建 NSEventSubmitBatchEventClassName 存储过程。当您更新应用程序时,Notification Services 会重新编译此存储过程。

此存储过程位于应用程序的架构中,该架构由应用程序定义文件 (ADF) 的 SchemaName 元素指定。如果没有提供架构名称,默认架构为 dbo

若要使用 Transact-SQL 向应用程序提交各个事件,请使用 NSEventBeginBatchEventClassName 打开批次,使用 NSEventWriteEventClassName 编写各个事件,然后使用 NSEventFlushBatchEventClassName 关闭事件批次。

权限

执行权限默认授予 NSEventProviderNSRunService 数据库角色、db_owner 固定数据库角色以及 sysadmin 固定服务器角色的成员。

示例

以下示例显示了如何使用 NSEventSubmitBatchStockEvents 存储过程从 Market 数据库的 Stocks 表中获取股票名称和价格,然后将此数据写入 NSStockEventsEvents 表。该查询指定一个空的后期处理查询。

应用程序使用默认的 SchemaName 设置,这会将所有应用程序对象置于 dbo 架构中。

EXEC dbo.NSEventSubmitBatchStockEvents
    @ProviderName = N'StockEP', 
    @EventsQuery = 'SELECT StockSymbol, StockPrice 
                    FROM Market.dbo.Stocks', 
    @PostQuery = '';

请参阅

参考

Notification Services 存储过程 (Transact-SQL)

其他资源

Notification Services 性能报告
SchemaName Element (ADF)

帮助和信息

获取 SQL Server 2005 帮助