Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2010, 12h36   #1
Invité de passage
 
DV Antoine
Inscription : octobre 2010
Messages : 4
Détails du profil
Informations personnelles :
Nom : DV Antoine

Informations forums :
Inscription : octobre 2010
Messages : 4
Points : 1
Points : 1
Par défaut Remettre tous les bit à 0 dans un champ d'une table toute les N secondes

Bonjour à tous,

voilà ma deuxième requête sur ce forum, hélas je ne peux émettre ici que des requêtes étant donné que le développement n'est pas du tout ma spécialité

Je vous remercie par avance pour l'aide que vous pourrez m'apporter, je vais essayer de m'exprimer au mieux...

J'ai une petite base SQL qui tourne sous SQL server v8 (SQL 2000).

Dans cette base j'ai une table POINT et dans cette table POINT un champ PO_ACTIVATED (data type: bit).
Pour tout mes enregistrements j'aimerai que toutes les 60 secondes une petite moulinette passe et me remette à 0 le champ PO_ACTIVATED si il est à 1.
Le nombre d'enregistrements ne change presque jamais mais j'aimerai ne pas avoir à me soucier de modifier la boucle si je modifie le nombre d'enregistrements.

Quelles sont les étapes pour arriver à faire tout ça ?

J'aimerai vous donner plus de détails genre pourquoi je veux remettre à 0, mais c'est un peu compliqué. Ce champ passe à 1 quand une alarme technique apparait à notre usine et parfois une fois que l'alarme a disparu le champ reste toujours à 1 (donc le système voit l'alarme toujours active alors qu'elle ne l'est plus), d'où mon besoin de remettre à 0 de temps en temps car la boite qui nous a développé ce MACHIN n'existe plus.

J'ai joint une petite capture d'écran qui pourra peut être vous éclairer.

Merci par avance.
Images attachées
Type de fichier : jpg sql.jpg (141,3 Ko, 4 affichages)
advfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 13h33   #2
Membre chevronné
 
Inscription : juillet 2006
Messages : 1 193
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 1 193
Points : 743
Points : 743
WHILE, DO, WAITFOR.
Sergejack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 13h49   #3
Invité de passage
 
DV Antoine
Inscription : octobre 2010
Messages : 4
Détails du profil
Informations personnelles :
Nom : DV Antoine

Informations forums :
Inscription : octobre 2010
Messages : 4
Points : 1
Points : 1
Citation:
Envoyé par Sergejack Voir le message
WHILE, DO, WAITFOR.
Merci Serge

Comme je l'ai précisé au dessus j'ai très peu de notions.

Donc ce que je comprend c'est:

TANT QUE je ne suis pas au bout de la colonne PO_ACTIVATED
JE FAIS valeur de PO_ACTIVATED=0
J'ATTENDS 60 secondes et je recommence

Mais tout ça je ne sais pas comment l'écrire.

Quelles sont les syntaxes et où écrire ça...

Merci encore de vos lumières
advfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 14h47   #4
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
sinon, si vous avez SQL Agent d'installé, vous pouvez créer un job, le planifier selon vos besoin pour exécuter la requête suivante :

Code :
1
2
3
UPDATE POINT
SET PO_ACTIVATED = 0
WHERE PO_ACTIVATED = 1
Il me semble que le WHILE de Sergejack était plutôt destiné à faire une boucle sans fin dans laquelle exécuter la requête ci-dessus (qui replace d'un seul coup tous les PO_ACTIVATED à 0), et attendre (WAITFOR) avant de recommencer
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h36.


 
 
 
 
Partenaires

Hébergement Web