将参数传递给表值函数

时间:2017-03-23 14:55:59

标签: function sql-server-2008-r2 parameter-passing

我正在尝试将参数值传递给具有四个参数和“返回表”的表值函数。但是,当我将参数值传递给其varchar参数之一时,我收到以下错误:

  

Msg 8114,Level 16,State 5,Line 6转换数据类型varchar时出错   对bigint。

(1 / 16) ^ i

一瞥功能:

declare @Scenario1 as varchar(30)
set @Scenario1 = '2017_B01'

select *
From      [dbo].[fn_GetAEAssumptionFacts](@Scenario1,null,null,null) fng

1 个答案:

答案 0 :(得分:1)

下面

 (CASE WHEN isnull(@pScenarioName, '') = '' 
                THEN (select  ID from AEX.[dbo].[ConfigurationFieldTable]
                where [Type] = 'Lease Connect Current Scenario' )
            ELSE @pScenarioName
 END)

您的值取决于@ScenarioName。这可能是select ID from AEX.[dbo].[ConfigurationFieldTable] WHERE...的结果,也可能是@ScenarioName的内容。

我认为此ID是bigint,而您的@SenarioName是字符串。而s.ID你要比较它 - 我不知道......

但是 - 说实话 - 我的魔法水晶球已用于清洁,而你提供的信息还不够。