生成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
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
相关文章推荐
- 存储过程里动态生成包含SQL语句字符串
- 在SQL存储过程内拼条件,动态生成SQL语句执行
- 存储过程————执行拼接的SQL语句的字符串
- 执行字符串SQL语句--带有参数的存储过程以及 int类型的字符串变量注意事项
- sql在所有存储过程中查询包含某字符串的执行语句
- 用存储过程动态生成sql语句并执行
- MYSQL存储过程执行用字符串拼成的sql语句
- 用于执行(计算) "字符串表达式" 的 T-SQL 存储过程
- 存储过程中执行动态Sql语句
- 验证选择每日学习总结:DropDownList是否已选择验证、存储过程参数为sql字符串问题、将截断字符串或二进制数据。\r\n语句已终止
- 直接从SQL语句问题贴子数据建表并生成建表语句的存储过程
- 简单的sql语句分解,通过存储过程。
- 生成Insert语句SQL存储过程
- 通过SQL语句提取存储过程中的内容
- MySQL 存储过程中执行动态SQL语句的方法
- MySQL存储过程中实现执行动态SQL语句的方法
- 存储过程中执行sql字符串,给存储过程的变量赋值
- 数据库存储过程中定义一个变量,通过sql语句在数据表中获取这个变量值的方法。
- 存储过程中执行动态Sql语句
- Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程