J'ai gratté ma tête avec cela pendant quelques heures déjà ... Voici ce qui se passe:Résultats double pour une mise à jour de SQL Déclaration
Je lance cette déclaration
STATUT SELECT dE [dbo] [TMP_TEST_CALL_LIST] où l'identité = '659303186000000000'
et je reçois le résultat suivant (une seule rangée):.
'Y'
Alors je cours cette déclaration
mise à jour [dbo]. [TMP_TEST_CALL_LIST] état set = 'Z' où l 'identité = '659303186000000000'
et je reçois CE !!!:
(1 row (s) affected)
(1 ligne (s) affecté)
Comme si 2 déclarations auraient été exécutées!
Mais il y a pire ... même si je lance comme ça:.
mise à jour [dbo] [TMP_TEST_CALL_LIST] état set = 'Z' où l 'identité = '659303186000000000' ET status = 'Y'
il me donnera le même résultat "double". Et si je l'exécute avec une clause WHERE qui ne correspond à aucun enregistrement, elle me dira 0 ligne (s) affectée ... deux fois. La chose (encore plus) effrayante est que cela arrive à certaines tables dans la base de données, et pas à d'autres. Je ne peux pas comprendre quelles sont les différences entre les tables.
H E L P! ! !
Merci.
Note: ceci est SQL Server 2008 R2
Vérifiez s'il y a un déclencheur de mise à jour sur la table. En outre, si vous avez activé le plan d'exécution d'affichage, cela génère un ensemble de lignes supplémentaire avec des informations envoyées au client. – Andomar