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 关闭事件批次。
权限
执行权限默认授予 NSEventProvider 和 NSRunService 数据库角色、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)