SQL SERVER 2008 关于用EXEC执行存储过程的问题
书上有一段如下:两种执行存储过程的不同方法。一是仅仅只调用存储过程:如果需要排除该语句,则在要执行的语句批中,这种对存储过程的调用需要作为批中的第一条语句。二是使用exe...
书上有一段如下:
两种执行存储过程的不同方法。
一是仅仅只调用存储过程:如果需要排除该语句,则在要执行的语句批中,这种对存储过程的调用需要作为批中的第一条语句。
二是使用exec命令:如果在一个批中,存储过程的调用是第二个或后续的语句,则需要在存储过程前使用exec语句作为前缀。如果在另一个存储过程中调用该存储过程,则同样需要使用EXEC命令作为前缀。
书上讲了这一段,我还是没明白什么情况下使用EXEC,什么情况下不使用。
麻烦高人详细解释下。。。最好通俗点。。。谢谢! 展开
两种执行存储过程的不同方法。
一是仅仅只调用存储过程:如果需要排除该语句,则在要执行的语句批中,这种对存储过程的调用需要作为批中的第一条语句。
二是使用exec命令:如果在一个批中,存储过程的调用是第二个或后续的语句,则需要在存储过程前使用exec语句作为前缀。如果在另一个存储过程中调用该存储过程,则同样需要使用EXEC命令作为前缀。
书上讲了这一段,我还是没明白什么情况下使用EXEC,什么情况下不使用。
麻烦高人详细解释下。。。最好通俗点。。。谢谢! 展开
3个回答
展开全部
不带 exec的执行存储过程必须是事务的第一句
我举个例子你就明白了
比如说我建立了一个存储过程 procName
第一种情况:不用exec的
create table ()..
GO --注意这里的GO 表示要开始下一个事务了
procName --这里直接使用存储过程名字 就是调用了
第二种情况:一定要使用 exec的
create table()
exec procName --你看这里,它不是作为这个事务的第一句开始的 所以要带上exec
我举个例子你就明白了
比如说我建立了一个存储过程 procName
第一种情况:不用exec的
create table ()..
GO --注意这里的GO 表示要开始下一个事务了
procName --这里直接使用存储过程名字 就是调用了
第二种情况:一定要使用 exec的
create table()
exec procName --你看这里,它不是作为这个事务的第一句开始的 所以要带上exec
展开全部
exec 是数据库操作中才用到,也就是必须在sql语句中。在数据库中执行存储过程可以右击执行存储过程就可以了,在查询分析器中加入exec+参数就可以执行。在程序调用的时候,直接调用存储过程即可。如果存储过程或sql语句调用其他存储过程或要执行其他sql语句的话就要加上exec
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我只见过这种必须用exec
将存储过程返回的结果插入到表中
insert into 表
exec 存储过程
将存储过程返回的结果插入到表中
insert into 表
exec 存储过程
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询