Delen via


De naam van de klant wordt niet opgeslagen in Klantonderhoud (08.260.00)

Dit artikel biedt een oplossing voor een probleem waarbij de naam van de klant niet wordt opgeslagen in Klantonderhoud.

Van toepassing op: Microsoft Dynamics SL 2011, Microsoft Dynamics SL 2011 Service Pack 1
Origineel KB-nummer: 3047916

Oorzaak

De ingestelde nocount on-instructie ontbreekt in een trigger. Hiermee wordt het bericht met het aantal rijen dat wordt beïnvloed door een Transact-SQL-instructie of opgeslagen procedure, niet meer geretourneerd als onderdeel van de resultatenset.

Oplossing

Voer de volgende SQL-instructie uit in SQL Server Management Studio op de toepassingsdatabase.

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