更新与SQL Server 2005上的存储过程(UPDATE with a stored proc

2019-09-29 03:52发布

UPDATE users 
SET field = my_sp()

在SQL Server 2005中显然我不能做到这一点,必须使用某种形式的EXEC的。 谁能帮助我,让我知道如何做到这一点? 这应该是一些简单的代表。

Answer 1:

要指定值,你需要使用SQL函数。 是不可能的分配从存储过程值。
这里是链接如何创建它。



Answer 2:

你需要编写一个标量函数,需要一些参数(甚至为零),并返回你所需要的。



Answer 3:

你可以在存储过程的输出存储在一个临时表中,然后使用该临时表为您更新的基础。 作为一个例子,下面的代码假定您的PROC将返回两个整数创下了一个纪录。

create table #t (
    ColumnA int,
    ColumnB int
)

insert into #t
    (ColumnA, ColumnB)
    exec my_sp

update u
    set field = t.ColumnB
    from users u
        inner join #t t
            on u.UserID = t.ColumnA

drop table #t


文章来源: UPDATE with a stored procedure on SQL Server 2005