CREATE PROC PR_CGDDSH
@rq1 datetime,@rq2 datetime
declare @sql varchar(50)
select @sql= sql from A
[email protected]=selec * from B where rq>@rq1 and rq<@rq2
[email protected]@rq2
如何执行 exec @sql 这个语句,代码怎么写
------解决方案--------------------
- SQL code
set @sql='select * from B where rq>[email protected]+' and rq<[email protected]exec(@sql)
------解决方案--------------------
用sp_executesql,具体参考sql帮助
------解决方案--------------------
lz:参考这两个
sp_executesql
exec(@sql)
希望lz成功。
------解决方案--------------------
EXEC (@Sql) 这样执行sql语句时,@Sql中是不能包括变量的,[email protected]@Value,@Start,@End,@[email protected]
------解决方案--------------------
exec执行的动态语句是在另外的批处理执行的,因此exec外部声明的变量是没有用的,exec里是找不到这些变量的,
可以使用sp_executesql来完成。
- SQL code
ALTER procedure [dbo].[SP_SQL](@form_name varchar(50),@F_tag varchar(50),@Start datetime,@End datetime,@Value varchar(50),@check int)asbegindeclare @sql varchar(500)select @sql=F_sql from T_sql where [email protected]_name and [email protected]_tagEXECUTE sp_executesql @sql, [email protected] datetime, @ed datetime, @v varchar(50), @ck int', @st = @Start, @ed = @End, @v = @Value, @ck [email protected];
------解决方案--------------------