我正在尝试使用ASP.NET和C#创建一个在我的web api中使用的存储过程。我有一个表格,其中有三列如下:
Id |TranName|ConfigName
---|--------|----------
10 |ABC |abcd
11 |BDE |bdef
12 |FGH |fghi
13 |HIJ |hijk
问题是我正在使用另一个存储过程返回一个整数列表,我必须使用它来搜索上表和TranName。因此,例如,给定一个整数列表9,10,11,12,13和TranName BDE找到相应的ConfigName(在这种情况下,我希望它匹配11为Id,然后BDE为TranName,并返回bdef作为ConfigName。< / p>
我对存储过程的代码如下所示。我正在创建一个表,用作在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
有人可以帮我修复存储过程代码吗?
答案 0 :(得分:3)
您应该将表格加入表值参数,如下所示:
select ConfigName
from TransTable as T join @list L
on T.Id = L.scrapeTranId
where T.TranName = @TransName