采用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