SQL de mise à Jour avec la fonction row_number()

Je veux mettre à jour ma colonne CODE_DEST avec un numéro incrémentiel. J'ai:

CODE_DEST   RS_NOM
null        qsdf
null        sdfqsdfqsdf
null        qsdfqsdf

Je voudrais le mettre à jour à:

CODE_DEST   RS_NOM
1           qsdf
2           sdfqsdfqsdf
3           qsdfqsdf

J'ai essayé ce code:

UPDATE DESTINATAIRE_TEMP
SET CODE_DEST = TheId 
FROM (SELECT  Row_Number()   OVER (ORDER BY [RS_NOM]) AS TheId FROM DESTINATAIRE_TEMP)

Cela ne fonctionne pas en raison de la )

J'ai aussi essayé:

WITH DESTINATAIRE_TEMP AS
  (
    SELECT 
    ROW_NUMBER() OVER (ORDER BY [RS_NOM] DESC) AS RN
    FROM DESTINATAIRE_TEMP
  )
UPDATE DESTINATAIRE_TEMP SET CODE_DEST=RN

Mais cela ne fonctionne pas à cause de l'union.

Comment puis-je mettre à jour une colonne à l'aide de la ROW_NUMBER() fonction dans SQL Server 2008 R2?

  • Post données de l'échantillon et les résultats attendus, c'est la meilleure façon d'obtenir SQL réponse avec. Sinon, votre ? n'a pas de sens et donner des réponses comme ça UPDATE myCol = myCol+1 FROM MyTable WHERE ID=@MyID
InformationsquelleAutor user609511 | 2012-11-30