有什么错误? (选择[数据]来自Split(@ProductName,','))

时间:2019-07-26 00:48:58

标签: sql-server tsql split

曾经使用过多个参数的存储过程,但是它停止了工作。

我正在尝试修复曾经起作用的存储过程,但突然创建了一个错误“无效的对象名” Split”。这是别人写的程序,所以我不确定“ Split”是什么。这是某种命令还是什么?

这是曾经可以使用但不再可用的存储过程。

DECLARE @ProductName NVARCHAR(MAX) = '9x95dk36-2727-9401-8948-161740000000,150t3vh6-1230-4449-8846-173120000000'


SELECT
    m.[member_id]
    , m.external_member_id
    , m.last_name
    , m.first_name
    , m.middle_name
    , e.effective_date
    ,[termination_date]
    , REPLACE(bhp.name_full_path,'CW > Medicaid > WI > SSI > ','') AS BHP
    , pr.product_name
    ,pr.product_ID
INTO #ActiveSSIMembers
FROM 
    [Eligibility] as e
    INNER JOIN Product as pr on e.product_id = pr.product_id
    INNER JOIN Member as m on e.member_id = m.member_id
    INNER JOIN BhpNode as bhp on m.bhp_node_id = bhp.bhp_node_id
WHERE 

    pr.product_ID IN (SELECT [Data] FROM Split(@ProductName,','))

我们需要对查询使用多个参数。

1 个答案:

答案 0 :(得分:0)

从您发布的代码来看,Split是一个Table-Valued User-Defined函数,它接受NVarchar参数(由','分隔)并返回列名称下的拆分值行Data

您在执行此查询的数据库中缺少该用户定义的函数。要么已删除,要么在另一个数据库中运行查询。

尝试如下导航至表值函数,并确保其中具有名为 Split 的函数(而不是该图中的“ TestFunction”)。如果没有,您可以创建我们的函数以拆分值并将其添加到数据库中。

您可以从this线程获得帮助以创建一个

enter image description here