本文目录
- sql server 中EXEC的用法
- sql 中exec 的含义和用法
- sql server中exec(赋给sql语句的变量)如何用变量保存值
- SQL语言EXEC作用
- SQL中exec的用法
- sqlserver中exec和execute的区别
- SQLServer动态exec查询语句,返回查询变量
- SQL SERVER exec 语法问题
- SQLserver2005中创建视图时的exec有什么用
- sqlserver中如何在用户定义的函数里使用exec
sql server 中EXEC的用法
exec函数族的作用为根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件。这里的可执行文件既可以是二进制文件,也可以是任何Linux下可执行的脚本文件。
exec函数族的函数执行成功后不会返回,因为调用进程的实体,包括代码段,数据段和堆栈等都已经被新的内容取代,只留下进程ID等一些表面上的信息仍保持原样,看上去还是旧的躯壳,却已经注入了新的灵魂。只有调用失败了,它们才会返回一个-1,从原程序的调用点接着往下执行。
扩展资料
使用exec函数族主要有两种情况:
1、当进程认为自己不能再为系统和用户做出任何贡献时,就可以调用exec函数族中的任意一个函数让自己重生。
2、如果一个进程想执行另一个程序,那么它就可以调用fork函数新建一个进程,然后调用exec函数族中的任意一个函数,这样看起来就像通过执行应用程序而产生了一个新进程(这种情况非常普遍)。
参考资料来源:百度百科-exec函数族
参考资料来源:百度百科-exec...
sql 中exec 的含义和用法
执行意思,如果你创建了一个存储过程名为Demo,而且里面就是简单查询create proc Demoasselect * from 表名执行上面语句,然后就创建了Demo如果你想执行Demo,就用exec Demo就直接执行了select语句,相当于编程语言中的调用函数
sql server中exec(赋给sql语句的变量)如何用变量保存值
好象有点明白了。假设你的存储过程有一个输入一个输出参数,并已经建立了这个存储过程,那你只要宣布两个变量分别为输入和输出 (比如如下语句):DECLARE @para_inINT,@para_out VARCHAR(100);DECLARE @sqlcmd varchar(500);SET @para_in=2;EXEC [你的存储过程] @para_in, @para_out;PRINT @para_out;你可以看到你的输出结果被打印出来。你还可以将@para_out拼到@sqlcmd中,然后执行;或做为另一存储过程的输入参数。SET @sqlcmd = ’PRINT ’’This isoutput parameter -’ + @para_out + ’’’’;EXEC (@sqlcmd);或EXEC [另一存储过程] @para_out;旦愿这回答了你的问题 :-)
SQL语言EXEC作用
修改表删除表,用的是update或者drop,这都是固定的sql语句的起始,比如ddl语句(create,drop,alter等),dml语句(insert ,delete,update,select),dcl语句等(commit,revoke,grant,rollback),这些语句都有固定的起始,看到这个语句sql解释器就知道你要干什么了。那么sp_help是什么?是固定的起始吗?明显不是?那么sp_help是什么,应该是一个过程或者包一类的东西,那么这个东西写在这里要干什么,明显是要执行,那么怎么执行这个包或者过程,用execute,简化写为exec。这里属于单独执行一个过程或者包,那么肯定要加exec执行,exec是语句固定提示符,告诉程序他的下一个动作是“执行”
SQL中exec的用法
一般exec(@s)代表执行一句动态sql。可参考以下例子,如代码:declare @s varchar(2000)declare @tablename varchar(20)set @tablename=’test’set @s=’select * from ’ + @tablename + ’’exec(@s)结果:注意:代码中倒数第二句的写法,也就是执行的动态sql语句,引用的动态名称需要用引号及加号。最后一句的动态sql也要用括号括起来。
sqlserver中exec和execute的区别
--一样的exec 是 execute的简写 ,没什么区别,就像admin是administrator的简写一样
SQLServer动态exec查询语句,返回查询变量
drop procedure tempPro;gocreate procedure tempProasdeclare @sql nvarchar(200), @user nvarchar(500), @tablename nvarchar(100)begin set @tablename=’t_stars’ set @sql=N’select @userOUT = stars_name from ’+@tablename+’ where stars_id=’’hk1006’’’; execute sp_executesql @sql, N’@userOUT varchar(30) output’, @userOUT=@user output; print @user; endgoexec tempPro;
SQL SERVER exec 语法问题
exec可以用来执行存储过程,和字符拼接的语句存储过程例子:exec proc_test @参数1,@参数2...@参数N字符拼接例子:exec(’select * from tb’)你可以照着例子分解一下你上面的语句(不过你给的语句好像有问题)
SQLserver2005中创建视图时的exec有什么用
显示视图/存储过程文本的,和创建视图没关系可以删掉如果非要加的话在exec前加一行go就不会报错了
sqlserver中如何在用户定义的函数里使用exec
这里我举个例子,假如有一个函数dbo.NumAdd用来计算加法,那它可能是这样的:DROP FUNCTION dbo.NumAddGOCREATE FUNCTION dbo.NumAdd( @A SMALLINT, @B SMALLINT)RETURNS INTASBEGIN DECLARE @Ret INT SET @Ret = ISNULL(@A,0) + ISNULL(@B,0) RETURN @RetEND你可以使用这样的方式调用函数并得到返回值:DECLARE @M INTSET @M = dbo.NumAdd(500,700)select @M现在,把这个函数修改成第一种使用存储过程的方式:DROP Procedure dbo.NumAdd1GOCREATE Procedure dbo.NumAdd1( @A SMALLINT, @B SMALLINT, @Ret INT OUTPUT)ASBEGIN SET @Ret = ISNULL(@A,0) + ISNULL(@B,0)ENDGO那么,你就可以通过下列的方法调用这个实际和函数dbo.NumAdd功能相同的存储过程:DECLARE @M1 INTEXEC dbo.NumAdd1 500,600,@M1 OUTPUTSELECT @M1这种方法是对标量函数较好的处理方法,而且,一个存储过程可以使用一个或者多个带有OUTPUT的参数来返回值。再看第二种方法修改为存储过程的方式:DROP Procedure dbo.NumAdd2GOCREATE Procedure dbo.NumAdd2( @A SMALLINT, @B SMALLINT)ASBEGIN DECLARE @Ret INT SET @Ret = ISNULL(@A,0) + ISNULL(@B,0) SELECT @RetENDGO这样,你就可以使用下面的方法来调用:DECLARE @M2 INTCREATE TABLE #Temp (Result INT)INSERT #Temp EXEC dbo.NumAdd2 800,600SELECT TOP 1 @M2 = Result FROM #TempDROP TABLE #TempSELECT @M2列出的这两种方法都是把函数改成存储过程的方法,而且在存储过程中可以使用EXEC、PRINT等函数中不能使用的内容。这个解释你明白了吗?