采用sqlserver的内置對象或者osql
'ExexSC(伺服器名,使用者名,密碼,腳本路徑)
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Public Sub ExexSC(TxtServerName As String, TxtLoginName As String, _
TxtLoginPWD As String, yourFileName As String)
'首先引用SQL DMO OBJECTLIBRARY
Dim GOBJServer As SQLDMO.SQLServer
Set GOBJServer = New SQLDMO.SQLServer
GOBJServer.LoginTimeout = 10
GOBJServer.Connect TxtServerName, TxtLoginName, TxtLoginPWD
'登入資料庫伺服器
'''''''''''''''''''''
'Dim LOBJDatabase As New SQLDMO.Database
' LOBJDatabase.Name = LStrDBName
'
' '建立資料庫資料檔案
' Dim LObjDBF As New SQLDMO.DBFile
' LObjDBF.Name = LStrDBName '名稱
' LObjDBF.PhysicalName = GOBJServer.Registry.SQLDataRoot & "/DATA/ " & LStrDBName & ".dbf " '檔案名稱
' LObjDBF.Size = 10 '初始大小10M
' LObjDBF.FileGrowthType = SQLDMOGrowth_Percent '增長方式為按比例
' LObjDBF.FileGrowth = 5 '增長5%
' LOBJDatabase.FileGroups( "PRIMARY ").DBFiles.Add LObjDBF '将資料庫檔案綁定到資料庫
'
' '建立日志檔案
' Dim lOBJLogF As New SQLDMO.LogFile
' lOBJLogF.Name = LStrDBName & "_Log.ldf "
' lOBJLogF.PhysicalName = GOBJServer.Registry.SQLDataRoot & "/DATA/ " & LStrDBName & "_log.ldf " '檔案名稱
' lOBJLogF.Size = 5 '初始大小5M
' LOBJDatabase.TransactionLog.LogFiles.Add lOBJLogF '将日志檔案增加到資料庫
'
' '将資料庫添加到伺服器
' GOBJServer.Databases.Add LOBJDatabase
''建立新的資料庫
'''''''''''''''''''''''''''''''
'Dim lObjLogin As New SQLDMO.Login '登入使用者對象
'Dim lObjUser As New SQLDMO.User '資料庫使用者對象
'
'lObjLogin.Name = Trim(TxtUserName.Text) '指定使用者登入名
'lObjLogin.Database = CboDatabases.Text '預設登入資料庫
'lObjLogin.DenyNTLogin = False '非NT系統登入
'GOBJServer.Logins.Add lObjLogin '添加登入使用者
'lObjLogin.SetPassword " ", Trim(TxtPWD.Text) '指定密碼
'GOBJServer.ServerRoles(1).AddMember Trim(TxtUserName.Text) '指定使用者為超級使用者
'lObjUser.Name = lObjLogin.Name '指定使用者名
'lObjUser.Login = lObjLogin.Name '
'GOBJServer.Databases(CboDatabases.Text).Users.Add lObjUser '為系統資料庫添加該新使用者
''為新資料庫建立使用者
'''''''''''''''''''''''''''''''''''
Dim fillname As Integer '檔案句柄
Dim lStrLine As String
fillname = FreeFile
Dim UstrSQlScript As String '記錄資料庫腳本
Open yourFileName For Input As #fillname
Do While Not EOF(fillname)
Line Input #fillname, lStrLine
UstrSQlScript = UstrSQlScript + lStrLine + (Chr(13) + Chr(10))
Loop
Close #fillname
'讀出腳本檔案到變量
''''''''''''''
'執行腳本建立資料庫
GOBJServer.Databases( "pubs ").ExecuteImmediate UstrSQlScript, SQLDMOExec_Default
MsgBox "執行成功 "
GOBJServer.Close
Set GOBJServer = Nothing
End Sub
osql(sqlserver7.0是isql) -U 使用者名 -P 密碼(密碼為空的話也必須寫該參數) -e 回顯(可選) -i 腳本相對或者絕對路徑
如要執行目前路徑下的的 使用者名 sa 密碼 空 aaa.sql 腳本
osql -U sa -P -e -i aaa.sql
注意:my.sql 裡面有go語句可能不行
這個對象必須安裝了sql_server才能有,Microsoft SQLDMO Object Library