는 내가없이이 일을 어떤 방법이 초기 데이터베이스 구조를 등다른 SQL 스크립트에서 SQL 스크립트를 호출하는 방법은 무엇입니까?
- script1.sql
- script2.sql
을 만들 .SQL 일련의 스크립트를 호출 할 sqlcmd 또는 저장 프로 시저 또는 SQL이 아닌 다른 종류의 코드? .sql 파일 안에 있습니다.
는 내가없이이 일을 어떤 방법이 초기 데이터베이스 구조를 등다른 SQL 스크립트에서 SQL 스크립트를 호출하는 방법은 무엇입니까?
을 만들 .SQL 일련의 스크립트를 호출 할 sqlcmd 또는 저장 프로 시저 또는 SQL이 아닌 다른 종류의 코드? .sql 파일 안에 있습니다.
확실히. 원하는 .sql 파일을 모두 가져 와서 실행하는 작은 응용 프로그램을 만듭니다. 당신이 시도 할 수 http://snipplr.com/view/3879/run-sql-script-from-external-file/
:
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
예에서 다음과 같이 VB.NET에서 할
exec master..xp_cmdshell 'osql -E -ix:\path\filename.sql'
OSQL 경로에 있어야합니다, 전체 파일 이름을 알고 있어야합니다, 로그인을 올바르게 설정해야합니다 (-E 또는 -U 옵션)
저장 프로 시저를 제외 할 이유가 없습니다. 당신은 포함 할 필요가 없습니다 "다른 SQL없는 코드의 종류", 플러스 다른 솔루션에
EXEC의 someothersp
해야합니다(또는 동급).
제외 이유는 무엇입니까? 나는 그것이 또 다른 언어로 코드를 작성하는 것보다 낫다고 생각할 것이다.
나는 그가 다른 SQL 스크립트 내에서 하나의 SQL 스크립트를 호출하기를 원한다고 생각한다. Chris Ballance가 제안한대로 외부 스크립트 및 언어에서 SQL 스크립트를 호출하지 않습니다. devio의 솔루션은 실행 가능합니다. 전체 경로가 필요한 경우 고통이 될 수도 있습니다. – tjmoore