Question

Je lance des requêtes à l'aide de l'utilitaire SQLCMD via PHP et je voulais savoir s'il y avait un moyen d'arrêter des requêtes ou des scripts que je l'ai exécuté par une autre commande SQL en passant l'ID de processus ou quelque chose.

Je fais également l'utilisation du pilote PHP pour SQL Server serait-il plus facile de le faire de cette façon?

Ou est rien de tout cela possible - une fois par requête, vous ne pouvez pas court arrêter

?

Merci à tous

Était-ce utile?

La solution

SQL Server conserve la trace de tous les processus d'exécution. Vous pouvez consulter la liste en utilisant des procédures stockées SP_WHO et SP_WHO2 -. Chaque processus a une SPID unique,

Dans le passé, je l'ai copié et personnalisé le code derrière ces procédures pour mes propres fins.

Vous pouvez vérifier la requête dernière exécutée sur un SPID en utilisant DBCC INPUTBUFFER (@SPID)

Vous pouvez tuer la plupart des processus utilisant KILL @SPID

Prenez note qu'il est généralement pas considéré comme une bonne idée de tuer des processus parce que vous ne pouvez pas être sûr exactement ce qu'ils font.

Autres conseils

Cela dépend comment vous appelez que SQLCMD. Courez-vous comme un appel à exec ()? Les commandes PHP ne vous donnent pas beaucoup de contrôle.

Si vous faites quelque chose de temps, il pourrait être préférable d'utiliser une architecture producteur-consommateur. Demandez à votre programme principal publier (à une base de données ou un fichier texte) la commande à exécuter. Avoir un processus distinct (un autre script PHP, peut-être) exécuter cette commande -. Mais avant qu'il ne commence la SQLCMD, avoir fournir son numéro d'identification de processus (ou une autre poignée) au programme principal

Ensuite, dans votre programme principal, vous pouvez tuer le processus donné naissance si elle prend trop de temps.

pourrait être instructif Certains des commentaires sur la fonction exec PHP: http: //au2.php.net/manual/en/function.exec.php

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top