Non posso rispondere alla domanda sul perché funziona in XP e non in Vista, ma quando vedi quel messaggio di errore associato a uno script molto grande, di solito significa che il batch di query è troppo grande per il parser da gestire.
Ci sono GO
affermazioni in quegli script? In caso contrario, è probabilmente la causa del fallimento. Più di 1 MB è piuttosto grande per uno script SQL che non è stato suddiviso in batch. O metti un po' di GO
istruzioni lì o (meglio ancora) suddividerlo in script più piccoli.