动态sql的传参方法和获取返回值

一)动态sql的传参方法
/* 实现动态sql传参的方法一:用数字变量转换为varchar*/
declare @sql_select varchar(max) 
declare @sql_group varchar(max)  
declare @sql_where varchar(max) 
set @sql_select=substring(@sql_select,1,len(@sql_select)-1)+' as groupItem,sum(pieces)*'+cast(@quantityPerGarment as varchar(20))+' as quantity from sizeBreakdown '
set @sql_group=substring(@sql_group,1,len(@sql_group)-1)
exec(@sql_select+@sql_where+@sql_group)

		
/* 实现动态sql传参的方法二:使用sp_executesql*/
declare @sql_select nvarchar(max) --这里必须是nvarchar 
declare @sql_group nvarchar(max)  --这里必须是nvarchar
declare @sql_where nvarchar(max)  --这里必须是nvarchar
declare @sqls nvarchar(max)	       --这里必须是nvarchar
set @sql_select=substring(@sql_select,1,len(@sql_select)-1)+' as groupItem,sum(pieces)*@quantityPerGarment as quantity from sizeBreakdown '
set @sql_group=substring(@sql_group,1,len(@sql_group)-1)
		set @sqls=@sql_select+@sql_where+@sql_group
print @sql_select
exec sp_executesql @sqls,N'@quantityPerGarment numeric(20)',@quantityPerGarment 


二)动态sql获取返回的结果集
获取动态sql返回值,参见 http://www.cnblogs.com/wanyuan8/archive/2011/11/09/2243483.html

猜你喜欢

转载自jackleechina.iteye.com/blog/1659847