数据库exec
‘壹’ sql 中exec的意思
你去查一下sp_addextendedproperty这个存储过程的定义嘛。exec就是执行存储过程。
‘贰’ SQL SERVER 2008 关于用EXEC执行存储过程的问题
不带 exec的执行存储过程必须是事务的第一句
我举个例子你就明白了
比如说我建立了一个存储过程 procName
第一种情况:不用exec的
create table ()..
GO --注意这里的GO 表示要开始下一个事务了
procName --这里直接使用存储过程名字 就是调用了
第二种情况:一定要使用 exec的
create table()
exec procName --你看这里,它不是作为这个事务的第一句开始的 所以要带上exec
‘叁’ 数据库的EXEC是什么意思,应该怎么用呢
sqlserver中
EXEC命令有两种用法,一种是执行一个存储过程,另一种是执行一个动态的批处理
1.使用系统存储过程sp_executesql运行Unicode命令字符串
语法如下:
sp_executesql [@stmt=] stmt
[
{,[@params=] N'@parameter_name data_type [,...n]'}
{,[@param1=] 'value' [,...n]}
]
说明:必须先将各个包含所要运行的命令语句的Unicode字符串相加在一起,再交给系统存储过程sp_executesql来运行,而不能在sp_executesql的语句中来相加各个命令字符串。
举例如下:
declare @DBName nvarchar(20),
@Tbname nvarchar(20),
@SQLString nvarchar(500)
set @DBName=N'Northwind'
set @Tbname=N'Customers'
set @SQLString=N'USE '+@DBName+char(13) --char(13)换行
SET @SQLString=@SQLString+N'select * from '+@Tbname
--必须先将命令字符串组合完毕后再交给sp_executesql来运行
exec sp_executesql @SQLString
2.使用EXECUTE命令运行命令字符串
要使用EXECUTE命令来运行一个命令字符串的语法如下:
EXEC[UTE] ({@string_variable|[N] 'stql_string'} [+...n])
从语法看出,可以先将包含所要运行的命令的字符串赋给一个局部变量@string_variable,再使用EXECUTE命令来运行,或是直接使用EXECUTE命令去运行一个包含所要运行的命令语句的字符串。此外,您也可以将多个包含所要运行的命令语句的字符串相加在一起,再交给EXECUTE命令来一次运行。
例:
declare @sql nvarchar(4000)
set @sql='select * from [表] where email=''[email protected]'''
exec (@sql)