在存储过程中生成SQL语句

      有时,我们需要在存储过程中生成一段SQL语句,下面我将平时的一段代码提供给大家参考。

 主要不同之处是我使用了一个函数:Coalesce。其详细的使用,建议大家参考SQL的帮助。代码如下:

ALTER PROCEDURE [dbo].[SFSP_ECOM_PaymentList]   
@pEmail NVARCHAR (100)=null,
@pNo NVARCHAR (50)=NULL,
@pAmount DECIMAL (18, 3)=165.000,
@StartTime DateTime = '2012-6-16',
@EndTime DateTime = NULL,
@SearchKey NVARCHAR (100)=NULL,
@PageSize INT=50,
@PageIndex INT=1,
@ORDERBY nvarchar(100) = 'pAmount DESC',
@DEBUG INT=0   
AS
declare @SQL nvarchar(max)
set ansi_nulls off
set @SQL = 'declare @pEmail NVARCHAR (100)='+Coalesce(@pEmail,'NULL')
+', @pNo NVARCHAR (50)= '+Coalesce(@pNo,'NULL')+
', @pAmount DECIMAL (18, 3)= '+CONVERT( NVARCHAR (50),Coalesce(@pAmount,'NULL'))+
', @StartTime DateTime = '''+Coalesce(convert(nvarchar(20),@StartTime,103),'NULL')+
''', @EndTime DateTime = '''+Coalesce(convert(nvarchar(20),@EndTime,103),'NULL')+
''', @SearchKey NVARCHAR (100)='+Coalesce(@SearchKey,'NULL')+
', @PageSize INT=50, @PageIndex INT=1 '
select @SQL

posted @ 2012-08-06 22:28  B.C 陈  阅读(208)  评论(0编辑  收藏  举报