2009-01-19 5 views
1

J'ai des travaux SQL Server en cours d'exécution qui incluent des instructions périodiques d'impression afin que je puisse regarder dans l'historique des travaux et avoir une idée de ce qui s'est passé. Mais la sortie est encombrée avec [SQLSTATE 01000]. Étant donné qu'il y a une limite à ce qui convient à cette production, j'aimerais avoir autant d'espace que possible pour les informations qui m'intéressent.SQLSTATE 01000 dans la sortie de travail SQL Server

Est-il possible de supprimer la sortie [SQLSTATE 01000] pour les commandes 'print'?

+1

Mais il est si utile d'être constamment rassuré que le SqlState est en effet 01000, vous ne pensez pas? – codeulike

Répondre

0

Vous n'avez probablement pas de chance. C'est la sortie normale pour les instructions PRINT. Je ne pense pas qu'il y ait moyen de les supprimer.

0

Pas positif si vous vouliez supprimer uniquement le [SQLSTATE 01000] de la sortie ou tout ce qui contenait [SQLSTATE 01000]. Donc, voici les deux façons.

Print replace(@PrintThis, '[SQLSTATE 01000]', ''); 

Fondamentalement, cela remplacera [SQLSTATE 01000] sans rien. Le suivant utilise CHARINDEX (expression1, expression1 [, emplacement_début]), recherche expression2 pour expression1 et renvoie sa position de départ si elle est trouvée. La recherche commence à l'emplacement start_location.

@result = CHARINDEX('[SQLSTATE 01000]', @PrintThis) 
if (@result > 0) 
    Print @PrintThis 

Donc, si CHARINDEX < 0 la chaîne [SQLSTATE 01000] n'existe pas et il n'imprime pas

Si manqué ce que vous essayez de faire s'il vous plaît répondre en tant que tel.

J'espère que cette aide,

Brett

3

Le problème (désolé. "Caractéristique") est avec la commande PRINT dans l'Agent SQL. J'ai surmonté ce problème en créant une variable de table avec une colonne pour 'output' et en la remplissant au fur et à mesure que je progresse dans mon script, puis à la fin du job SELECT à partir de la variable table. La redirection de la sortie vers un fichier via SQL Agent me donne un journal du travail. À n'importe quel moment dans le travail, s'il rencontre une erreur, je vider le contenu de la table avant de quitter. (J'inclue généralement la commande à exécuter dans la variable de table immédiatement avant de l'exécuter). Il suffit de remplacer toutes vos déclarations d'impression avec une instruction SELECT à la fin du travail va se débarrasser de ces satanés [SQLSTATE 01000] suffixes

tous ... putain ... ligne ...

Salutations, Ken

Questions connexes