0

dbml にストアド プロシージャを追加すると、戻り値の型が不明なエラーが発生します。以下は私のSPです。エラーを把握できません。それに関連する質問が多すぎて確認しましたが、解決策は一時テーブルを使用しないことでした.はい、いくつかのブログで提案されているように一時テーブルを使用していませんが、テーブル変数を使用していますが、エラーも発生しています. 助けてください。

ALTER PROCEDURE dbo.Reports
    (
      @startDate datetime,
      @endDate datetime,
      @pageType int,
      @assignedClincian int
    )

AS

BEGIN

 Declare @SqlQuery varchar(max)    
 Declare @strCondition varchar(max)
 Declare @tempTable Table
 (
     First_Name varchar(150),
     Last_Name varchar(150),
     ID int,
     PageType_Id int,
     Rf_Date datetime,
     DOB datetime,
     InsuranceCompany varchar(250),
     AssignedClincian varchar(250)
 )


 set @SqlQuery =  'select * from tblusers'



        If @startDate IS NOT NULL AND @endDate is Not null
        Begin    
           set @strCondition = ' FO.Rf_Date  >= convert(datetime, ''' + Convert(varchar,@startDate,112) + ''') and  FO.Rf_Date<= convert(datetime, ''' + Convert(varchar,@endDate,112) + ''')'
        End  

        Else if @startDate IS NOT NULL 
        Begin
           set @strCondition = ' FO.Rf_Date  >=' + @startDate 
        End

        Else if @EndDate IS NOT NULL 
       Begin
          set @strCondition = ' FO.Rf_Date  <=' + @EndDate 
        End



      if @pageType > 0
      Begin
      set @strCondition = (case when @strCondition='' then ''  else @strCondition +  ' and ' end)  + ' FO.PageType_Id='+ Convert(varchar,@pageType)
      End

    if @assignedClincian > 0
      Begin
          set @strCondition = (case when @strCondition='' then ''  else @strCondition +  ' and ' end) +'  p1.AST_Clinician_Assginments_To=' + Convert(varchar,@assignedClincian)
      End



     set @SqlQuery=(case when @strCondition='' then @SqlQuery  else  @SqlQuery + ' where ' + @strCondition end) + ' order by Fo.ID'

         insert into @tempTable  EXEC (@SqlQuery)    

          select * from @tempTable 

END

RETURN
4

1 に答える 1