La requête de mise à jour SQL Server ne fonctionne pas, cependant, SQL indique que les lignes ont été affectées

J'ai une database SQL Server 2000 avec une table nommée Voters . Une colonne de la table ( PrecinctCode de type varchar(10) ) est supposée avoir un code à 4 numbers similaire à A111 ou D109 , mais certaines lignes ont une valeur de '999' . Les lignes avec la valeur '999' ont le bon numéro dans une colonne différente ( FaultCode de type varchar(50) ). Je veux copyr les valeurs de FaultCode à PrecinctCode lorsque PrecinctCode = 999 .

J'ai couru cette requête

 UPDATE Voters SET PrecinctCode = FaultCode WHERE (PrecinctCode = '999') 

Un message indiquant "3031 lignes affectées" s'affiche, mais les lignes affectées affichent toujours 999 dans la colonne PrecinctCode . Je me connecte à la database avec l'authentification Windows sous le count d'administrateur, donc je ne pense pas que ce soit un problème de security.

Quelqu'un at-il eu une requête de mise à jour qui ne mettrait pas à jour les lignes?

MODIFIER

J'ai essayé cette requête pour récupérer le schéma, cela ne m'a rien donné d'utile.

 SELECT * FROM INFORMATION_SCHEMA.TABLES where TABLE_NAME like '%Voters%' 

Souhaitez-vous simplement postr le travail de design de table? Sinon, pouvez-vous me dire une requête à exécuter pour récupérer les informations dont vous avez besoin? Merci.

Essayez d'abord d'effectuer un SELECT pour savoir ce que vous requestz:

 SELECT FaultCode, PrecinctCode FROM Voters WHERE PrecinctCode = '999'; 

NB: si la longueur de FaultCode dépasse 10 caractères, votre UPDATE échouera.

Pour les sourires, essayez ceci

 UPDATE Voters SET PrecinctCode = FaultCode WHERE PrecinctCode = '999' and FaultCode <> '999' 

Ou essayez

 UPDATE Voters SET PrecinctCode = RTRIM (FaultCode) WHERE PrecinctCode = '999' 

Et

 select *, len(FaultCode) from Voters WHERE PrecinctCode = '999' and PrecinctCode <> FaultCode 

Peut-être que vous devriez essayer de commettre après la mise à jour