【发布时间】:2019-05-15 03:35:36
【问题描述】:
我的选择语句中有一堆记录。我必须从该选择中为每一行调用某些存储过程。我知道这可以用游标完成(我已经在 SO 上找到了关于这个的答案——但它们都很老了)。我很好奇今天在现代版本的 SQL Server 中是否还有其他可能性?
我的选择:
SELECT USER_KEY, USER_WHK FROM BAUSER WHERE USER_STA = '1'
我的插入:
EXEC sp_BAUSCA_BASE
@iUSCA_KEY = NULL
, @iCAET_KEY = 150000003
, @iUSER_KEY = --user key from select
, @iENTE_KEY = 110000001
, @dUSCA_DAT = GETDATE()
, @cUSCA_STA = '1'
, @cUSCA_SRT = '1'
, @iUserId = 160000230
, @cTask = '2'
【问题讨论】:
-
你在那个sp里面做了什么SQL不能做的?理想情况下,您应该只从选择中插入,而不是使用游标。当然,除非你在存储过程中做一些非常时髦的事情,比如调用某个东西的加密 API……
-
PROblem 是 USCA_KEY - 它是通过调用另一个存储过程在存储过程中生成的。
标签: sql-server sql-server-2016