2008-10-15 17 views
12

मैं प्रारंभिक डेटाबेस संरचनाकिसी अन्य SQL स्क्रिप्ट के भीतर से SQL स्क्रिप्ट को कैसे कॉल करें?

  1. script1.sql
  2. script2.sql आदि

बनाने के लिए .sql स्क्रिप्ट की एक श्रृंखला कॉल करना चाहते हैं वहाँ के बिना ऐसा करने का किसी भी तरह से है sqlcmd या संग्रहीत प्रक्रिया या किसी अन्य प्रकार का कोड जो SQL नहीं है? बस एक .sql फ़ाइल के अंदर।

उत्तर

3

निश्चित रूप से। बस एक छोटा ऐप बनाएं जो आपके द्वारा इच्छित सभी एसएसएलएल फाइलों में खींचता है और उन्हें निष्पादित करता है। आप इस कोशिश कर सकते http://snipplr.com/view/3879/run-sql-script-from-external-file/

11

: VB.NET में यह है इस प्रकार है:

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 

उदाहरण से

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

osql पथ में होना चाहिए, पूरा फ़ाइल नाम पता होना चाहिए, और लॉग इन को सही तरीके से स्थापित करना होगा (विकल्प -E या -U)

0

संग्रहित प्रक्रियाओं को बाहर करने का कोई कारण नहीं है। आप शामिल करने के लिए की जरूरत नहीं है "कोड के किसी भी अन्य प्रकार है कि एसक्यूएल नहीं है", के साथ साथ किसी भी अन्य समाधान में

EXEC someothersp

जो आवश्यक हो जाएगा (या इसके समकक्ष)।

उन्हें छोड़कर आपका कारण क्या है? मुझे यकीन है कि यह एक और भाषा में कोड लिखने लगता है।

+1

मुझे लगता है कि उसका मतलब है कि वह एक एसक्यूएल स्क्रिप्ट को किसी अन्य एसक्यूएल स्क्रिप्ट के भीतर से कॉल करना चाहता है। क्रिस बैलेंस के प्रस्ताव के रूप में बाहरी स्क्रिप्ट और भाषाओं से एसक्यूएल स्क्रिप्ट को कॉल न करें। डेवियो का समाधान व्यावहारिक है, अगर शायद दर्द हो तो उसे पूर्ण पथ की आवश्यकता होती है। – tjmoore

संबंधित मुद्दे