Подтвердить что ты не робот

Как вызвать SQL script из другого SQL script?

Я хочу вызвать серию сценариев .sql для создания исходной структуры базы данных

  • script1.sql
  • script2.sql и др.

Есть ли способ сделать это без sqlcmd или хранимых процедур или любого другого кода, который не является sql? только внутри файла .sql.

4b9b3361

Ответ 1

вы можете попробовать следующее:

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

osql должен находиться в пути, должно быть известно полное имя файла, и логины должны быть настроены правильно (опции -E или -U)

Ответ 2

Конечно. Просто создайте небольшое приложение, которое загружает все файлы .sql, которые вы хотите, и выполняете их. Сделайте это в 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

Пример из: http://snipplr.com/view/3879/run-sql-script-from-external-file/

Ответ 3

Нет причин для исключения хранимых процедур. Вам не нужно включать "любой другой код, который не является sql", плюс

EXEC someothersp

который потребуется (или его эквивалент) в любом другом решении.

В чем причина их исключения? Я бы точно подумал, что это написание кода на другом языке.