Je suis en train de créer une procédure stockée à utiliser dans mon API web en utilisant ASP.NET et C#. J'ai une table où il y a trois colonnes comme ceci:Rechercher dans une table en utilisant deux paramètres où l'un d'eux est une liste d'entiers
Id |TranName|ConfigName
---|--------|----------
10 |ABC |abcd
11 |BDE |bdef
12 |FGH |fghi
13 |HIJ |hijk
Le problème est que j'utilise une autre procédure stockée qui retourne une liste d'entiers que je dois utiliser pour rechercher le tableau ci-dessus avec le TranName. Ainsi, par exemple, étant donné une liste d'entiers 9,10,11,12,13 et TranName BDE trouver le nom de configuration correspondant (dans ce cas, je pense qu'il doit correspondre à 11 pour l'Id, puis BDE pour le TranName et retourner bdef comme le nom de configuration
le code que j'ai pour la procédure stockée est comme indiqué ci-dessous. Je crée un tableau à utiliser comme paramètre pour rechercher dans le 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
que quelqu'un peut me aider à résoudre le code de procédure stockée ?
Pourquoi ne pas simplement passer dans la liste séparée par des virgules en tant que paramètre ou, mieux encore, un paramètre de table? – scsimon
@scsimon Je ne comprends pas ce que vous proposez. – Koolkirtzz
Vérifiez vos index qu'un candidat crée un index sur TransTable (TranName) include (Id) –