J'ai une table simple dans mon SQL Server 2008 DB:Modifier SQL résultats avant le retour de la procédure stockée
Tasks_Table
-id
-task_complete
-task_active
-column_1
-..
-column_N
Les instructions stocke les tables pour les tâches inachevées qui doivent être exécutées par un service.
Je veux être en mesure de faire évoluer mon système à l'avenir. Jusqu'à présent, seulement 1 service sur 1 ordinateur lu de la table. J'ai une procédure stockée, qui sélectionne toutes les tâches inachevées et inactives. Lorsque le service commence à traiter les tâches, il met à jour l'indicateur task_active dans toutes les lignes renvoyées.
Pour activer la mise à l'échelle du système, je souhaite activer le déploiement du service sur plusieurs machines. Étant donné que je veux empêcher une tâche d'être renvoyée à plus d'un service, je dois mettre à jour la procédure stockée qui renvoie des tâches inachevées et inactives. J'ai pensé que je devais verrouiller la table (seulement 1 lecteur à la fois - je sais que je dois utiliser un ISOLATION LEVEL approprié), et met à jour le drapeau task_active dans chaque rangée du jeu de résultats avant de retourner le jeu de résultats . Donc, ma question est de savoir comment modifier le jeu de résultats SELECT dans la procédure stockée avant de le renvoyer?
Existe-t-il un moyen de commander le Task_Table avant d'appeler TOP (1) sans perdre le ROWLOCK et READPAST? – m0sa