SQL 执行exec的返回值
有一存储过程:procAAA该存储过程返回一条SQL命令字符串:'select*fromAAA'现在的问题是我想执行这个存储过程返回SQL命令字符串,我以为这样能行:ex...
有一存储过程:procAAA
该存储过程返回一条SQL命令字符串:'select * from AAA'
现在的问题是我想执行这个存储过程返回SQL命令字符串,
我以为这样能行:exec (exec procAAA)。
可是却错了,还问各位前辈们如何做到,谢谢了! 展开
该存储过程返回一条SQL命令字符串:'select * from AAA'
现在的问题是我想执行这个存储过程返回SQL命令字符串,
我以为这样能行:exec (exec procAAA)。
可是却错了,还问各位前辈们如何做到,谢谢了! 展开
3个回答
展开全部
直接改过程吧,你这个绕来绕去太麻烦。
这么改:
begin
declare @str varchar(4000)
set @str = 'select * from AAA'
exec @str
end
省得你还要取出来
这么改:
begin
declare @str varchar(4000)
set @str = 'select * from AAA'
exec @str
end
省得你还要取出来
追问
上面只是个示例而以,我项目里的存储很多的,改的话又要加参数,而且调用端也要改,这样工作量相当大。
追答
改过程是最简单的方式,也可以更好的控制权限,如果前期没做好这些工作,后期维护起来会花费更多的时间。而且我写的这个并没有加参数吧,,调用段只用执行这个过程就可以了,不用改动
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好的办法是加一个存储过程PROCB。然后在存储过程中调用procAAA。把它的返回值复制个一个变量VAR
然后在新建的存储过程中。执行VAR;
你在最外出直接调用PROCB 即可
然后在新建的存储过程中。执行VAR;
你在最外出直接调用PROCB 即可
追问
可不可以贴具体的代码上来,谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
procAAA是怎么样返回的? out参数还是什么? 把这个存储过程贴出来
更多追问追答
追问
是这样的
create proc testAAA
as
begin
declare @str varchar(4000)
set @str = 'select * from AAA'
SELECT @str AS SQL
end
追答
非得这样写存储过程吗?为什么不用out参数?你要实现什么样的需求?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询