Le nom du client n’est pas enregistré dans Maintenance du client (08.260.00)

Cet article fournit une solution à un problème où le nom du client n’est pas enregistré dans Maintenance du client.

S’applique à : Microsoft Dynamics SL 2011, Microsoft Dynamics SL 2011 Service Pack 1
Numéro de la base de connaissances d’origine : 3047916

Cause

Un déclencheur ne contient pas l’instruction set nocount on . Ce qui empêche le message qui indique le nombre de lignes affectées par une instruction Transact-SQL ou une procédure stockée d’être retourné dans le cadre du jeu de résultats.

Résolution

Exécutez l’instruction SQL suivante dans SQL Server Management Studio sur la base de données de l’application.

alter TRIGGER ADG_TR_CustNameXref_Add ON dbo.Customer  
FOR INSERT,UPDATE
AS
set nocount on
 DECLARE @CustID varchar(15)
 DECLARE @Name varchar(30)
 DECLARE @RowsAffected int

 SELECT @RowsAffected = @@ROWCOUNT

 IF @RowsAffected = 1
 BEGIN

  IF UPDATE(Name)
  BEGIN
   SELECT @CustID = CustID, @Name = Name from DELETED
   EXECUTE ADG_CustNameXref_Delete @CustID, @Name

   SELECT @CustID = CustID, @Name = Name from INSERTED
   EXECUTE ADG_CustNameXref_Add @CustID, @Name
  END
 END

 IF @RowsAffected > 1
 BEGIN

  IF UPDATE(Name)
  BEGIN

   DECLARE DelCursor SCROLL CURSOR FOR SELECT CustID, Name FROM DELETED

   OPEN DelCursor

   FETCH FIRST FROM DelCursor INTO @CustID, @Name

   WHILE (@@FETCH_STATUS = 0)
   BEGIN
    EXECUTE ADG_CustNameXref_Delete @CustID, @Name

    FETCH NEXT FROM DelCursor INTO @CustID, @Name

   END

   CLOSE DelCursor
   DEALLOCATE DelCursor

   DECLARE InsCursor SCROLL CURSOR FOR SELECT CustID, Name FROM INSERTED

   OPEN InsCursor

   FETCH FIRST FROM InsCursor INTO @CustID, @Name

   WHILE (@@FETCH_STATUS = 0)
   BEGIN
    EXECUTE ADG_CustNameXref_Add @CustID, @Name
  
    FETCH NEXT FROM InsCursor INTO @CustID, @Name

   END

   CLOSE InsCursor
   DEALLOCATE InsCursor
  END
 END