ASP.NET 및 C#을 사용하여 웹 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을 찾습니다.이 경우 Id가 11이고 BName이 TranName이고 bdef가 ConfigName이됩니다.
아래 그림과 같이 내가 저장 프로 시저에 대한이 코드는. 내가 표를 작성하고있다는 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
이
누군가가 저장 프로 시저 코드를 수정 좀 도와 줄래 ?
쉼표로 구분 된 목록을 매개 변수로 전달하거나 더 나은 방법으로 테이블 매개 변수를 전달하지 않는 이유는 무엇입니까? – scsimon
@scsimon 나는 당신이 제안하는 것을 이해하지 못합니다. – Koolkirtzz
색인을 확인하십시오 후보자는 TransTable (TranName)의 색인을 만듭니다. 포함 (Id) –