用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
linuxjava01的公告
文章分类
    存档

    原创  存储过程:关于装配Sql语句的一些操作 收藏

     ALTER PROCEDURE [dbo].[KM004_Select]

     @ProjectName nvarchar(50),    --项目名称 like 
                  
        @ProjectScopeFrom nvarchar(10),      --项目规模From              
        @ProjectScopeTo nvarchar(10),        --项目规模To  
                    
        @ClientName nvarchar(50),   --客户名称  like             
        @ProjectState char(2),     --状态 
                     
        @KeyPersonName nvarchar(50),   --相关联系人 like              
        @ProjectAppraise char(2),    --质量评价 
                     
        @BeginFrom nvarchar(10),   --开始日From              
     @BeginTo   nvarchar(10),         --开始日To 
     
     @OutParam nvarchar(1) OUT 
     
    AS
         declare @E_SUCCESS   varchar(1) set @E_SUCCESS='0'     --0:正常结束
     
         declare @E_NODATA    varchar(1) set  @E_NODATA='1'      --1:对象数据不存在,检索不到数据
     
         declare @E_ERROR2   varchar(1) set  @E_ERROR2='6'       --6:主键重复
     
         declare @E_ERROR3   varchar(1) set  @E_ERROR3='7'    --7:逻辑排他
        
         declare @E_ERROR4   varchar(1) set  @E_ERROR4='8'    --8:业务排他
     
         declare @E_ERROR5   varchar(1) set   @E_ERROR5='9'     --9:异常终止
        
         declare @sql varchar(3000)
        
    --存储过程开始
    BEGIN try    
              
     --设置默认返回值
        set @OutParam=@E_SUCCESS
       
        set @sql='select distinct ProjectID, ActorName,ClientName,ClientID,ProjectName,
       case when ProjectState=01 then ''意向性''
          when ProjectState=02 then ''商谈中''
          when ProjectState=03 then ''发注中''
       when ProjectState=04 then ''开发中''
       when ProjectState=05 then ''验收中''
       when ProjectState=06 then ''后期对应''
       when ProjectState=07 then ''完成''
       end AS ProjectState ,
       SecretLevel,
       ProjectScope,
       convert(varchar(10), BeginDate,111) AS BeginDate,UpdateUserName,
       convert(varchar(10), UpdatedDate,111) AS UpdatedDate
       from View_KM005Project Where DeleteFlg = 0'

       
        if  @ProjectName<>''-- is not null
        set @sql=@sql+' and ProjectName like ''%'+@ProjectName+'%'''
       
        if  @ClientName<>''-- is not null
        set @sql=@sql+' and ClientName like ''%'+@ClientName+'%'''
       
        if  @KeyPersonName<>''--is not null
        set @sql=@sql+' and KeyPersonName like ''%'+@KeyPersonName+'%'''
               
      --过滤项目规模条件   
     if  @ProjectScopeTo <>''--is not null
     set @sql=@sql+' And ProjectScope <= '+@ProjectScopeTo
     
     if @ProjectScopeFrom <>''--is not null
     set @sql=@sql+' And ProjectScope >= '+@ProjectScopeFrom
     
     
     --过滤状态条件
     if @ProjectState<>''-- is not null
     set @sql=@sql+' And ProjectState = '+@ProjectState
     
     
     --过滤质量评价条件
     if @ProjectAppraise<>''-- is not null
     set @sql=@sql+' And ProjectState = '+@ProjectAppraise
     
     
     --过滤开始日条件
     if @BeginTo<>''-- is not null
     set @sql=@sql+' And BeginDate <= '''+@BeginTo+''''
     
     if @BeginFrom<>''-- is not null
     set @sql=@sql+' And BeginDate >='''+@BeginFrom+''''
     
     set @sql=@sql+' Order By ProjectID DESC'
     print(@sql)
     
       EXEC(@sql)

             if @@rowcount=0 set @OutParam=@E_NODATA
             if @@error<>0 set @OutParam=@E_ERROR5
            
    --存储过程结束                   
    END try


    --捕获异常
    BEGIN catch

     print(@sql)
     
       --设置异常
       set @OutParam =@E_ERROR5

    END catch

    发表于 @ 2008年01月17日 17:19:00 | 评论( loading... ) | 编辑| 举报| 收藏

    旧一篇:存储过程:关于游标的一些操作 | 新一篇:存储过程:关于事务的一些操作

    • 发表评论
    • 评论内容:
    •  
    Copyright © linuxjava01
    Powered by CSDN Blog