今天自己摸索写了一个sql的存储过程,两层if 判断,语句拼接,backup 语句模式有两种,一种是Create New 还有一种是Modify ,下面的是第一种 要提示的是,写语句的时候 单引号的引用:用到单引号的一律两个单引号代替 USE [a] GO /****** Object: StoredProcedure [a].[Processname] Script Date: 02/24/2011 11:49:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- ============================================= CREATE PROCEDURE [a].[Processname] @FromDateTime varchar(200), @ToDateTime varchar(200), @CountryCode varchar(200), @Version varchar(200) AS declare @sql varchar(1000) set @sql='select AccessDateTime,IpAddress,Area,AreaDetail as description,City,Version from a.TableName where AccessDateTime between ''' + @FromDateTime+''' and '''+ @ToDateTime+'''' BEGIN if(@CountryCode='') begin set @sql=@sql if(@Version='') begin set @sql = @sql +' order by id desc' end else begin set @sql = @sql + ' and Version='''+@Version +''' order by id desc' end end else begin set @sql=@sql if(@Version='') begin set @sql=@sql +' and Area='''+@CountryCode+''' order by id desc' end else begin set @sql=@sql +' and Area='''+@CountryCode+''' and Version='''+ @Version +''' order by id desc' end end exec(@sql) END