存储过程中执行动态Sql语句

ALTER proc [dbo].[p_query]
(
    @start int,
    @end int
)
as
begin 
  declare @viewName nvarchar(32)
  declare @sql nvarchar(256)

  select @viewName =viewName  from T_viewSelect where dataMin<@start and dataMax>@end and dataMax >@start

  set @sql='select * from '+@viewName
  set @sql=@sql+ ' where id >'+cast(@start as nvarchar)
  set @sql=@sql+'and id< '+cast(@end as nvarchar) 
  print @sql
  exec(@sql)
end

需要将声明的@start int类型的转换为字符串加到定义的@sql的这个字符穿中

原文地址:https://www.cnblogs.com/hongmaju/p/4544119.html