您的位置:首页 > 数据库

生成SQL语句字符串,通过存储过程执行

2005-07-13 17:28 801 查看
/*使用游标,临时生成Sql语句*/
DECLARE mealcursor CURSOR FOR Select * From T_MealOrderAuto
declare @count as int
declare @sqlstr as nvarchar(4000)/*长度最大,如果太长会出错*/
declare @id as int

/*set @sqlstr = ''
Create table T_ID_Count(
autoid int,
quantity int
)
*/
open mealcursor
FETCH NEXT FROM mealcursor into @id
WHILE @@FETCH_STATUS = 0
BEGIN

set @count = (Select Quantity From T_MealOrderAuto Where AutoID=@id)
While(@count>0)
begin
if @sqlstr = ''
set @sqlstr = @sqlstr + 'Select *,DateAdd(Day,' + cast(@count as nvarchar(10)) + ',CreateDateTime) as aaa From T_MealOrderAuto Where AutoID='+cast(@id as nvarchar(10))
else
set @sqlstr = @sqlstr + ' union Select *,DateAdd(Day,' + cast(@count as nvarchar(10)) + ',CreateDateTime) as aaa From T_MealOrderAuto Where AutoID='+cast(@id as nvarchar(10))

set @count=@count-1
end
FETCH NEXT FROM mealcursor into @id
END

close mealcursor
/*调用存储过程,执行sql变量*/

exec sp_executesql @sqlstr
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: