3 votes

Mise à jour de plusieurs lignes dans SQL Server avec la clause IN

J'ai une procédure stockée comme ceci :

CREATE PROCEDURE Resume 
    @UserID nvarchar(100)
AS
BEGIN
    SET NOCOUNT ON;

    update Candidate set Approved = 'y' where UserId_I in (@UserID)
END
GO

En cela, le @UserID est au format chaîne de caractères. J'envoie la valeur du paramètre @UserID es 1,2,3 du code en tant que chaîne.

J'ai obtenu l'erreur suivante

La conversion a échoué lors de la conversion de la valeur nvarchar '1,2,3' en type de données int.

Veuillez résoudre ce problème

0voto

Nisarg Shah Points 340

Vous pouvez essayer une démo donnée ci-dessous...

CREATE PROCEDURE [dbo].[Proc_Name] @CSVConnectivityIds NVARCHAR(MAX)
WHILE len(@CSVConnectivityIds) > 0
    BEGIN
        INSERT INTO tblName
        VALUES (left(@CSVConnectivityIds, charindex(',', @CSVConnectivityIds + ',') - 1))
        SET @CSVConnectivityIds = stuff(@CSVConnectivityIds, 1, charindex(',', @CSVConnectivityIds + ','), '')
    END

J'espère que cela vous aidera

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X