sql - 添加了 TSQL Cursor 新记录

标签 sql tsql cursor

我写了一个游标:

DECLARE CURSOR_SendMail CURSOR FAST_FORWARD  
FOR  
SELECT AlertId,AlertDetailsId,AlertDescription  
,AlertTarget,ProjectDetailId,Subject  
FROM    tblAlert   
WHERE AlertId > @MaxAlertID

这里@MaxAlertID是一些 id,以便该 id 之上的记录将被邮寄。

我想问的是:

在逐一获取记录并邮寄它们时,是否还会考虑插入 tblAlert 表中的任何新记录,或者仅考虑声明游标时可用的记录。

例如

在声明游标时,表中存在的最大 id 为 1000 和 @MaxAlertID是 0。

因此,当我开始为 1 及以上的每条记录发送邮件并到达某个记录 517 时,有几条记录被添加到 tblAlert有 1001 和 1002,所以那些 1001,1002 将被考虑或最多 1000 将被考虑。

最佳答案

查看 DECLARE CURSOR 的文档.您可以指定一些选项,以便获得您想要的行为 - 您还没有告诉我们。

如果您不想考虑新记录,请考虑指定 STATICKEYSET .如果确实要考虑新记录,请指定 DYNAMIC .

我实际上不记得默认行为是什么 - 并且目前似乎无法找到它。如果我需要特定的行为,我总是指定它而不是依赖默认值。

关于sql - 添加了 TSQL Cursor 新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9030349/

相关文章:

sql - 数据透视表 SQL 中的水平总计

android - 在游标结果中获取表名,Android,SQLite

mysql - 使用查询的子父关系表中最顶层的父项

SQL:获取其他行未使用的数字列表

MySQL更新一行但单个字段

sql-server - 将 nvarchar 列排序为整数

sql - 在子句中包含许多值 - SQL

java - Android 严格模式 java.lang.Throwable : Explicit termination method 'close' not called

html - Chrome 强制默认鼠标光标?

mysql - 向表中插入行并添加序列