您的位置:首页 > 数据库

sqlserver 只有函数和扩展存储过程才能从函数内部执行

2015-08-27 11:32 393 查看
一个SQLServer的自定义函数中调用一个自定义的存储过程,执行此函数后发出如下提示:“只有函数和扩展存储过程才能从函数内部执行"。
原因:函数只能使用简单的sql语句,逻辑控制语句,复杂一点的存储过程是不能调用的,在函数里也不能使用execute sp_executesql 或者execute 。解决方法把函数改为存储过程,然后在另一个存储过程中象调用函数一样使用此存储过程就可以了。
下面是一个存储过程调用另一个存储过程的实例,有参数传递的。
--存储过程sp_B
create proc sp_B
@A int ,
@B int ,
@C int output
AS

set @C = @A + @B
go

--存储过程p_A
create proc sp_A
@A int ,
@B int
as
declare @C int
exec sp_B @A , @B , @C output
print @C
go
--测试
exec sp_A 3 , 5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: