执行 Transact-SQL 批中的命令字符串、字符串或执行下列模块之一:系统存储过程、用户定义存储过程、标量值用户定义函数或扩展存储过程。

Execute a stored procedure or function

[ { EXEC | EXECUTE } ]

{

[ @return_status = ]

{ module_name [ ;number ] | @module_name_var }

[ [ @parameter = ] { value

| @variable [ OUTPUT ]

| [ DEFAULT ]

}

]

[ ,...n ]

[ WITH RECOMPILE ]

}

[;]

Execute a character string

{ EXEC | EXECUTE }

( { @string_variable | [ N ]'tsql_string' } [ + ...n ] )

[ AS { LOGIN | USER } = ' name ' ]

[;]

Execute a pass-through command against a linked server

{ EXEC | EXECUTE }

( { @string_variable | [ N ] 'command_string [ ? ]' } [ + ...n ]

[ { , { value | @variable [ OUTPUT ] } } [ ...n ] ]

)

[ AS { LOGIN | USER } = ' name ' ]

[ AT linked_server_name ]

[;]

EXEC命令有两种使用方法,一种是运行一个存储过程,还有一种是运行一个动态的批处理。下面所讲的都是另外一种使用方法。

以下先使用EXEC演示一个样例,代码1

DECLARE @TableName VARCHAR(50),@SqlNVARCHAR(MAX),@OrderID INT;

SET @TableName = 'Orders';

SET @OrderID = 10251;

SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) +'WHEREOrderID = '+CAST(@OrderID AS VARCHAR(10))+' ORDER BY ORDERID DESC'

EXEC(@sql);

推荐内容