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