使用两个参数在 table 中搜索,其中一个参数是整数列表

Search in a table using two parameters where one of them is a list of integers

我正在尝试使用 ASP.NET 和 C# 创建一个存储过程以在我的 Web api 中使用。我有一个 table,其中有如下三列:

Id |TranName|ConfigName
---|--------|----------
10 |ABC     |abcd
11 |BDE     |bdef
12 |FGH     |fghi
13 |HIJ     |hijk

问题是我正在使用另一个存储过程,它 return 是一个整数列表,我必须使用它来搜索上面的 table 以及 TranName。因此,例如,给定一个整数列表 9,10,11,12,13 和 TranName BDE 找到相应的 ConfigName(在这种情况下,我希望它匹配 11 的 Id 然后 BDE 的 TranName 和 return bdef 作为配置名称。

我的存储过程代码如下所示。我正在创建一个 Table 用作在 TransTable 中搜索的参数。

CREATE TYPE dbo.ScrapeTranList
AS TABLE

(
  scrapeTranId int
);
GO
CREATE PROCEDURE [dbo].[GetConfigNameById]
    -- Add the parameters for the stored procedure here
    @list AS dbo.ScrapeTranList READONLY,
    @TransName varchar = null
AS
BEGIN
    SET NOCOUNT ON;
select ConfigName 
from TransTable as T 
where T.TranName = @TransName AND T.Id IN @list
END

谁能帮我修复存储过程代码?

您应该像这样加入 table 到 table 值的参数:

select ConfigName 
from TransTable as T join @list L
        on T.Id = L.scrapeTranId
where T.TranName = @TransName