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