在UPDATE T-SQL中执行存储过程

时间:2014-09-04 06:57:33

标签: sql sql-server

我有下一个t-sql代码

UPDATE
    #f_contr_temp
SET
    sum_percent = (EXEC get_f_contr_credit_delay_pz fct.f_contr, @date_loop, @sum_percent OUTPUT)
FROM
    #f_contr_temp AS fct,
    f_garanty AS fg
WHERE
    fct.f_contr = fg.f_contr

我试图更新sum_percent列,但抛出一个异常,我无法在更新中执行过程。 我不知道,如何更新我的专栏。请帮忙。

1 个答案:

答案 0 :(得分:0)

使用临时表存储S.P.的结果,如下所示:

CREATE TABLE #temp (percentage decimal(18,9))

INSERT INTO #temp
(EXEC get_f_contr_credit_delay_pz fct.f_contr, @date_loop, @sum_percent OUTPUT)

UPDATE
    #f_contr_temp
SET
    sum_percent = (select top 1 percentage from #temp)
FROM
    #f_contr_temp AS fct,
    f_garanty AS fg
WHERE
    fct.f_contr = fg.f_contr

我想你的S.P.返回值,所以我使用TOP 1命令只得到第一个。

请注意 fct.f_contr,这是它的来源?这样查询就不正确了。