--------------------------------------------------
-- GetTaskInfoByMultiCondition 按多个信息返回任务信息(是否打印,任务单编号,项目名称)
--------------------------------------------------
CREATE PROCEDURE GetTaskInfoByMultiCondition
   @condition_1 nvarchar(50),   --taskid
   @condition_2 nvarchar(50),   --ifprinted
   @condition_3 nvarchar(50),   --project_item_id
   @condition_4 nvarchar(50)   --exam_date
AS
    SET NOCOUNT ON
declare @sql nvarchar(400)
   set @sql='SELECT task_id,project_name,consign_firm,exam_date,printed_date,ifprinted FROM grosstask WHERE ifexam=1 '
   set @condition_1=isnull(@condition_1,'')   
   set @condition_2=isnull(@condition_2,'') 
   set @condition_3=isnull(@condition_3,'') 
   set @condition_4=isnull(@condition_4,'')    exec(@sql+@condition_1+@condition_2+@condition_3+@condition_4)  RETURN 0--------------------------------------------------
--返回一个记录集
------------------------------------------------
GO

解决方案 »

  1.   

    --调试一下
    select @sql+isnull(@condition_1,'')+' '+isnull(@condition_2,'')+' '+isnull(@condition_3,'')+' '+isnull(@condition_4,'')
      

  2.   

    print @sql+isnull(@condition_1,'')+' '+isnull(@condition_2,'')+' '+isnull(@condition_3,'')+' '+isnull(@condition_4,'')
    然后拷贝执行一下看看。
      

  3.   

    CREATE PROCEDURE GetTaskInfoByMultiCondition
       @condition_1 nvarchar(50),   --taskid
       @condition_2 nvarchar(50),   --ifprinted
       @condition_3 nvarchar(50),   --project_item_id
       @condition_4 nvarchar(50)   --exam_date
    AS
        SET NOCOUNT ON
    declare @sql nvarchar(400)
       set @sql='SELECT task_id,project_name,consign_firm,exam_date,printed_date,ifprinted FROM grosstask WHERE ifexam=1 '
       select @sql = @sql + isnull(@condition_1,'') + ' ' + isnull(@condition_2,'') + ' ' + isnull(@condition_3,'') + ' ' + isnull(@condition_4,'')
       exec(@sql)