Je dispose d'un process stocké dans lequel je transmets deux paramètres. Un paramètre est un paramètre table-évalué et l'autre est un nvarchar. Voici la procédure stockée:Procédure stockée SQL - Utilisation des paramètres en interne
ALTER PROCEDURE [dbo].[_sp_TestProc]
@P1 As [dbo].[FileIdTableType] Readonly,
@P2 As NVARCHAR (MAX)
AS
BEGIN
SET NOCOUNT ON;
SELECT DISTINCT [Field1], [Field2], [Field3]
FROM [MyTable] WHERE [Field1] IN (@P1)
AND [Field2] IN (@P2)
END
De code, je passe alors dans mon DataTable comme @ P1 et une chaîne de valeurs @ P2 qui ressemble à "'Value1', 'Value2', 'Value3', 'Value4'"
Il est @ P2 qui me cause des problèmes . Le type de table fonctionne bien. Normalement, lorsque j'utilise des paramètres tels que ceux-ci dans mes process stockés, je crée une chaîne en interne, formate ma chaîne avec les paramètres, puis appelle sp_executeSql pour que la requête s'exécute. Toutefois, cela ne fonctionnera pas lors de l'utilisation des paramètres Table-Valued.
Est-ce que quelqu'un sait comment travailler avec des paramètres de table avec nvarchar comme ça? Je suis sûr qu'il me manque quelque chose de simple en essayant de le formater correctement. Merci,
-Scott
Vous pouvez diviser la chaîne et l'insérer dans une variable de table/table temporaire. –