大家知道,wsh(windows script host)在windows平臺(tái)下是用來代替bat文件的,以其靈活,功能強(qiáng)大許多人都用來處理自己的日常事物,但在調(diào)用excel,sqlerver方面可能不是太清楚了,今天這個(gè)例子就是 用vbscript來調(diào)用Dcom來生成數(shù)據(jù)庫(kù)或刪除數(shù)據(jù)庫(kù): 可以先建一個(gè)以.vbs結(jié)尾的文件,靠下面的東西到里面進(jìn)去,雙擊就可以執(zhí)行了,只要把里面的sql腳步的路徑和Sqlserver的密碼和賬戶改下就能用了 Dim str,ff,i ,intt,strtmp '定義普通變量 Dim goSQLServer,oDatabase '定義Sql_Dmo對(duì)象變量 Dim fso '定義文件對(duì)象 call main() '============================================================================== '============================================================================== public sub main() InitSqlDmo "." DropDatabase "Assetcheck" CreateDatabase "assetcheck" '取得數(shù)據(jù)庫(kù) Set oDatabase = goSQLServer.Databases("assetCheck") 'msgbox oDatabase.PrimaryFilePath '執(zhí)行大量的Sql文本文件 ExecuteSqlFromFile "D:\AssetCheck\sqltext\assetcheck.sql" ClearSqlDmo If Err.Number <> 0 Then MsgBox "發(fā)生錯(cuò)誤" MsgBox "腳本生成完成" end sub '------------------------------------------------------------------------------- '初始化連接對(duì)象 public sub InitSqlDmo(aServerName) Set fso = CreateObject("Scripting.FileSystemObject") Set goSQLServer = CreateObject("SQLDMO.SQLServer") goSQLServer.Connect aServerName, "sa", "" end sub '----------------------------------------------------------------------------- '創(chuàng)建數(shù)據(jù)庫(kù) public sub CreateDatabase(astrDataBaseName ) strtmp = " create DataBase " & astrDataBaseName goSQLServer.ExecuteImmediate strtmp end sub '刪除數(shù)據(jù)庫(kù) public sub DropDatabase(astrDataBaseName ) strtmp = " Drop DataBase " & astrDataBaseName goSQLServer.ExecuteImmediate strtmp end sub '------------------------------------------------------------------------------ '執(zhí)行腳本 public sub ExecuteSqlFromFile(astrExecuteSqlFile ) Set ff = fso.OpenTextFile(astrExecuteSqlFile) Do While ff.AtEndOfStream <> True strtmp = ff.ReadLine str = str & vbCrLf & strtmp i = i + 1 If i >= 1500 And strtmp = "" Then i = 1 oDatabase.ExecuteImmediate (str) str = "" End If Loop If Trim(str) <> "" Then oDatabase.ExecuteImmediate (str) End If ff.Close end sub '----------------------------------------------------------------------------------- public sub ClearSqlDmo() Set fso = Nothing Set goSQLServer = Nothing end sub
|