Forum Clubic

Copie de champs de table . .

Bonjour,

J’ai une table “Equipements” avec parmis les champs “Date_Achat” et “Date_en_service”.

Je veux copier le champ “Date_Achat” dans “Date_en_service” pour chaque ligne…

Je pensais utiliser

UPDATE Equipements
SET Date_en_service = Date_Achat

Mais visiblement ça ne fonctionne pas :frowning:

Pourriez vous me dire comment procéder svp ?

Merci d’avance.
Edité le 08/12/2009 à 10:07

Pourquoi dis-tu que ça ne fonctionne pas visiblement ?

La requête est syntaxiquement correcte.

  • Si tu es sur un Linux / Unix, attention au respect de la casse
  • Autrement, vérifies bien que les colonnes soient de même type

Et si ca ne marche pas : donne le message d’erreur

Sauf que la casse n’est pas censé faire chier son monde en SQL :slight_smile: sauf à utiliser " pour délimiter les champs.

Je suis d’accord, mais par exemple, MySql Windows est case insensitive et MySql Linux l’est. Quant à mettre des double quotes, je suis moyen chaud dans la mesure ou je trouve SQL déjà pas mal verbeux.

Perso, je serais plus partant pour une convention : tout en majuscules ou minuscules + underscore.

Oui, pareil. Mais faut pas oublier que mySQL et SQL ANSI, ça ne fait pas 2. Normalement, mySQL devrait passer tes colonnes hors quotes en majuscules ou minuscules, et donc être parfaitement insensible à la casse… mais bon :stuck_out_tongue:

Hello,

Désolé pour ma réponse tardive, j’ai été malade et ne reprend le travail qu’aujourd’hui.

Je travaille sur MS SQL Server 2000, et “visiblement” ça ne marche pas car les champs ne sont pas copiés… par contre aucun message d’erreur n’apparait.

Les champs sont de même type.

La syntaxe est bonne, par contre la commande l’est elle ? . . . Car moi ça me semble correct, mais presque trop simple pour être juste. Il y a des années que je n’ai pas fait de SQL et du coup je me sens un peu paumé là avec ce problème.

Merci de votre aide.
Edité le 07/12/2009 à 08:17

Y’a-t-il bien des lignes/enregistrements dans la table ?

Oui oui, Je fais un SELECT avant et après et le résultat est identique :frowning:

Salut,

Je ne connais pas du tout MS SQL Serveur 2000, mais est-ce que le COMMIT se fait automatiquement ?
Si ce n’est pas le cas, tu as la réponse à ton problème.

Ah ? Mais euh . . . Question conne peut être mais . . . Qu’est ce que le COMMIT ? . . .

Le COMMIT c’est la commande qui valide les actions précédentes et fait en sorte qu’elles soient appliquée (que l’ajout, la modification ou la suppression soit bel et bien faite sur le disque dur du serveur)
Edité le 07/12/2009 à 19:51

Quand tu fais ta commande il devrai te dire (xx row(s) affected), avec le xx = le nombre de lignes dans ta table.

Normalement tu ne devrais pas te soucillier du COMMIT, c’est automatique dans SQL 2000 (sauf si tu fais un BEGIN TRAN).

Verifie que Date_en_service et Date_achat ont bien le meme data type (les 2 datetime ou varchar ou char).

Tu peux aussi faire un copier/coller des 10 premieres lignes de ta table ici, ca nous aiderai :slight_smile:
Select top 10 Date_en_service, Date_Achat From Equipements

Ca fonctionne correctement . . .

Sans mettre d’espaces ça fonctionne !

Set Date_en_service = Date_Achat : ça ne passe pas
Set Date_en_service=Date_Achat : ça passe

Jamais vu ça avant :frowning:

En tout cas merci de votre aide :slight_smile: