sql server 中的EXEC有什么用?!
7个回答
展开全部
exec函数族的作用为根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件。这里的可执行文件既可以是二进制文件,也可以是任何Linux下可执行的脚本文件。
exec函数族的函数执行成功后不会返回,因为调用进程的实体,包括代码段,数据段和堆栈等都已经被新的内容取代,只留下进程ID等一些表面上的信息仍保持原样,看上去还是旧的躯壳,却已经注入了新的灵魂。只有调用失败了,它们才会返回一个-1,从原程序的调用点接着往下执行。
扩展资料
使用exec函数族主要有两种情况:
1、当进程认为自己不能再为系统和用户做出任何贡献时,就可以调用exec函数族中的任意一个函数让自己重生。
2、如果一个进程想执行另一个程序,那么它就可以调用fork函数新建一个进程,然后调用exec函数族中的任意一个函数,这样看起来就像通过执行应用程序而产生了一个新进程(这种情况非常普遍)。
参考资料来源:百度百科-exec函数族
参考资料来源:百度百科-exec...
展开全部
有两个语法:
第一个,执行存储过程:如果 EXEC SP_XXX
第二个,执行组合的命令字符串,如:
declare @cmd varchar(500)
select @cmd='select * from '
select @cmd = @cmd + 'tbTest'
select @cmd = @cmd + ' where 1=1'
exec(@cmd)
-- 相当于执行了 select * from tbTest where 1=1 这条查询命令
-- 更多带参数传递形式的调用,请参考MSSQL的帮助信息。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
EXEC 是 EXECUTE 的缩写.
执行一个存储过程的时候使用
下面是一个 存储过程 / 调用存储过程的例子.
1> CREATE PROCEDURE HelloWorld AS
2> BEGIN
3> PRINT 'Hello World';
4> END;
5> go
1> DECLARE @RC int
2> EXECUTE @RC = HelloWorld
3> PRINT @RC
4> go
Hello World
0
执行一个存储过程的时候使用
下面是一个 存储过程 / 调用存储过程的例子.
1> CREATE PROCEDURE HelloWorld AS
2> BEGIN
3> PRINT 'Hello World';
4> END;
5> go
1> DECLARE @RC int
2> EXECUTE @RC = HelloWorld
3> PRINT @RC
4> go
Hello World
0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表示要执行T_SQL查询等。如 exec 存储过程名,exec 自定义SQL语句 (如:@sql='Select * From A'),那么就可以用 exec @sql 来执行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是执行动态sql的
exec sp_executesql N'SELECT LA001, LA014, LA005, LA011, LA013, LA021 FROM cgjterp..INVLA INVLA
WHERE LA001=@P1 AND LA009=@P2
ORDER BY LA001, LA009
' 到这里是定义一个动态sql
N'@P1 varchar(20),@P2 varchar(10)' 是对动态sql里用的变量申明
'301110101001', '01' 给相应的变量赋值
希望对你有帮助
exec sp_executesql N'SELECT LA001, LA014, LA005, LA011, LA013, LA021 FROM cgjterp..INVLA INVLA
WHERE LA001=@P1 AND LA009=@P2
ORDER BY LA001, LA009
' 到这里是定义一个动态sql
N'@P1 varchar(20),@P2 varchar(10)' 是对动态sql里用的变量申明
'301110101001', '01' 给相应的变量赋值
希望对你有帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询