2009-02-24 11 views
3

ma dernière question se référant à l'extraction de procédures stockées SQL dans des fichiers .sql (see here) J'ai une autre question:comment éviter sqlcmd ligne vide entre Resultsets?

comment éviter ou supprimer la ligne vide sqlcmd entre Resultsets?

Raison (see MSDN) Lorsque plusieurs résultats sont renvoyés, sqlcmd imprime une ligne vide entre chaque jeu de résultats dans un lot. Cela signifie que les procédures stockées (plus de 4000 caractères) sont divisées en deux parties chacune, dans syscomments et si exporté avec sqlcmd dans le fichier texte (.sql) il y aura une nouvelle ligne à ce point de partage. Comment l'enlever ou l'éviter?

Merci d'avance!

sean

Répondre

2

est mise à jour pour your fichier batch ici (cela fonctionnera pour> 8000 caractères limite mais il est facile de régler cette limite):

for /f %%a in (sp_list.txt) do sqlcmd -E -S SERVER -d DB -h-1 -Q "DECLARE @I INT, @SP1 NVARCHAR(4000), @SP2 NVARCHAR(4000) SET @I = 0 SET @SP1 = '' SET @SP2 = '' SELECT @I = @I + 1, @SP1 = CASE WHEN @I = 1 THEN text ELSE @SP1 END, @SP2 = CASE WHEN @I = 2 THEN text ELSE @SP2 END from dbo.syscomments WHERE id = OBJECT_ID('%%a') SELECT @[email protected]" -o "%%a.sql" 

personnellement, je suis préoccupé si grand procédures.

qui est une limitation, mais si vous avez des procédures stockées avec des numéros de ligne de plus de 4000 caractères, vous avez probablement beaucoup, beaucoup plus gros problèmes que peut résoudre ce blog ... aucun de mes procédures stockées ont des lignes de plus de 150 caractères, ce qui n'est probablement pas un gros problème pour la plupart des gens. Comme je l'ai dit, si vos lignes sont si longues, vous avez de plus gros problèmes!
Adam Machanic - "Reflect" a TSQL routine

mais il y a aussi des pensées que les grandes procédures ne sont pas un problème:

« texte » champ est défini comme NVARCHAR (4000) de sorte que chaque rangée ne peut contenir jusqu'à 4000 caractères. Cependant, il n'est pas rare d'avoir un code objet beaucoup plus grand que 4000 caractères. Solomon Rutzky - Searching Objects for Text

+0

Bonjour à nouveau :) Merci pour votre aide! Je vais l'essayer dès que je pourrai gagner du temps. J'utilise ces procédures stockées en combinaison avec BizTalk Server SQL Adapter - chaque sproc est une collection d'instructions pour une application BizTalk, laquelle exécution dépend du paremeter soumis par BizTalk. – seansilver

+0

Bien sûr, vous êtes welkome. –

Questions connexes