天天看點

代碼直接執行Sql腳本啊

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