sql server - generate - ¿Cómo llamar a un script SQL desde otro script SQL?
sqlcmd parameters (3)
Quiero llamar a una serie de scripts .sql para crear la estructura de la base de datos inicial
- script1.sql
- script2.sql etc.
¿Hay alguna forma de hacerlo sin sqlcmd o procedimientos almacenados o cualquier otro tipo de código que no sea sql ? justo dentro de un archivo .sql.
Por supuesto. Simplemente cree una pequeña aplicación que obtenga todos los archivos .sql que desee y los ejecute. Hazlo en VB.NET de la siguiente manera:
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
Ejemplo de: http://snipplr.com/view/3879/run-sql-script-from-external-file/
No hay ninguna razón para excluir los procedimientos almacenados. No necesita incluir "ningún otro tipo de código que no sea sql", más
EXEC someothersp
que se requerirá (o su equivalente) en cualquier otra solución.
¿Cuál es su razón para excluirlos? Creo que es mejor que escribir código en otro idioma.
puedes intentar esto:
exec master..xp_cmdshell ''osql -E -ix:/path/filename.sql''
osql debe estar en la ruta, se debe conocer el nombre completo del archivo y los inicios de sesión deben configurarse correctamente (opciones -E o -U)