sqlserver中\x0d\x0aEXEC
命令有两种用法,一种是执行一个存储过程,另一种是执行一个动态的批处理\x0d\x0a\x0d\x0a1.使用系统存储过程sp_executesql运行Unicode命令
字符串\x0d\x0a语法如下:\x0d\x0asp_executesql [@stmt=] stmt\x0d\x0a[\x0d\x0a {,[@params=] N'@parameter_name data_type [,...n]'}\x0d\x0a {,[@param1=] 'value' [,...n]}\x0d\x0a]\x0d\x0a说明:必须先将各个包含所要运行的命令
语句的Unicode字符串相加在一起,再交给系统存储过程sp_executesql来运行,而不能在sp_executesql的语句中来相加各个命令字符串。\x0d\x0a举例如下:\x0d\x0adeclare @DBName nvarchar(20),\x0d\x0a @Tbname nvarchar(20),\x0d\x0a @SQLString nvarchar(500)\x0d\x0aset @DBName=N'Northwind'\x0d\x0aset @Tbname=N'Customers'\x0d\x0aset @SQLString=N'USE '+@DBName+char(13) --char(13)换行\x0d\x0aSET @SQLString=@SQLString+N'select * from '+@Tbname\x0d\x0a--必须先将命令字符串组合完毕后再交给sp_executesql来运行\x0d\x0aexec sp_executesql @SQLString\x0d\x0a\x0d\x0a2.使用EXECUTE命令运行命令字符串\x0d\x0a要使用EXECUTE命令来运行一个命令字符串的语法如下:\x0d\x0aEXEC[UTE] ({@string_variable|[N] 'stql_string'} [+...n])\x0d\x0a从语法看出,可以先将包含所要运行的命令的字符串赋给一个局部变量@string_variable,再使用EXECUTE命令来运行,或是直接使用EXECUTE命令去运行一个包含所要运行的命令语句的字符串。此外,您也可以将多个包含所要运行的命令语句的字符串相加在一起,再交给EXECUTE命令来一次运行。\x0d\x0a\x0d\x0a例:\x0d\x0adeclare @sql nvarchar(4000) \x0d\x0a set @sql='select * from [表] where email=''test@163.com''' \x0d\x0a exec (@sql)Exec是SQL查询语句中的一种方法,它可以执行已编译的SQL语句。它可以直接执行一条或多条SQL语句。它主要用来执行从数据库应用程序中获得的不可知的动态SQL语句,即使这些语句可能来自未知的数据源。你举得例子里面,exec是执行数据库中的存储过程的。
exec+存储过程名(不是表名)+'X'(X表示存储过程所要的参数1……N每个参数用","隔开)
比如有个寻出过程名叫getInfo,有2个输入参数(id,name)
exec getInfo ‘10000’,‘张三'
结果就是getInfo这个存储过程使用id='10000'、name='张三' 所得到的 *** 作结果
评论列表(0条)