我写了一个游标:
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
的文档.您可以指定一些选项,以便获得您想要的行为 - 您还没有告诉我们。
如果您不想考虑新记录,请考虑指定 STATIC
或 KEYSET
.如果确实要考虑新记录,请指定 DYNAMIC
.
我实际上不记得默认行为是什么 - 并且目前似乎无法找到它。如果我需要特定的行为,我总是指定它而不是依赖默认值。
关于sql - 添加了 TSQL Cursor 新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9030349/