2008-10-15 15 views

Répondre

3

Bien sûr. Il suffit de créer une petite application qui tire tous les fichiers .sql que vous voulez et les exécute. Faites-en VB.NET comme suit:

Sub ExecuteSqlScript(FilePath As String) 

    Dim Script As String 
    Dim FileNumber As Integer 
    Dim Delimiter As String 
    Dim aSubscript() As String 
    Dim Subscript As String 
    Dim i As Long 

    Delimiter = ";" 
    FileNumber = FreeFile 
    Script = String(FileLen(FilePath), vbNullChar) 

    ' Grab the scripts inside the file 
    Open FilePath For Binary As #FileNumber 
    Get #FileNumber, , Script 
    Close #FileNumber 

    ' Put the scripts into an array 
    aSubscript = Split(Script, Delimiter) 

    ' Run each script in the array 
    For i = 0 To UBound(aSubscript) - 1 
     aSubscript(i) = Trim(aSubscript(i)) 
     Subscript = aSubscript(i) 
     CurrentProject.Connection.Execute Subscript 

    Next i 

End Sub 

Exemple de: http://snipplr.com/view/3879/run-sql-script-from-external-file/

11

vous pouvez essayer ceci:

exec master..xp_cmdshell 'osql -E -ix:\path\filename.sql' 

osql doit être dans le chemin, le nom du fichier complet doit être connu, et les connexions doivent être configurées correctement (options -E ou -U)

0

Il n'y a aucune raison d'exclure les procédures stockées. Vous n'avez pas besoin d'inclure « tout autre type de code qui ne sql », plus

EXEC someothersp

qui sera nécessaire (ou son équivalent) dans toute autre solution.

Quelle est votre raison de les exclure? Je pense que ça va battre le code d'écriture dans une autre langue.

+1

Je pense qu'il veut dire qu'il veut appeler un script SQL à partir d'un autre script SQL. Ne pas appeler des scripts SQL à partir de scripts et de langages externes comme le propose Chris Ballance. La solution de devio est réalisable, si peut-être une douleur si elle a besoin de chemins complets. – tjmoore

Questions connexes