我在“If It Moves, Script It”(英文)這篇文章中曾談到,如何使用“Windows Script Host(WSH)”( Windows 指令碼主機) 管理 Windows 和 Windows 中的應用程式。文中的大多數樣本都是基於管理 Windows 作業系統自身的,並不基於在該作業系統下啟動並執行應用程式。為迎接新千年,我想我應該談談,如何在眾多顯露可指令碼化介面的應用程式中使用指令碼。這次只涉及“SQL Server”。在以後的幾個月中,我將著重談 Exchange、Office 和“系統管理伺服器”。
您可以通過使用“分散式管理物件”、“資料轉換服務”和新的“SQL Server XML”實現,將指令碼用於“SQL Server”。
許多人都能夠通過“Active Data Object(ADO)”和“Active Server Page (ASP)”技術訪問資料庫了。ADO 在協助您查詢和更新資料庫方面做了大量的工作 — 但在備份(Y2K 問題帶給我們的警惕)或是資料庫之間的傳輸資料方面,其表現又如何呢?而這時就非涉及到 XML 不可了。
在此,我將告訴您如何通過使用 ADO 的伴隨技術 - 特別是“分散式管理物件”、“資料轉換服務”和新的“SQL Server XML”實現,將指令碼用於“SQL Server”。
分散式管理物件
“分散式管理物件 (DMO)”是一組 COM 物件,它將“SQL Server”資料庫和複製管理封裝在一起。這意味著您可以編寫一個 WSH 指令碼,將特定表中的所有資料都複製到用定位字元分隔的檔案中,這有助於大量資料的移動。我之所以選擇這個樣本,是因為它的代碼編寫起來簡單,但 DMO 允許您擷取“SQL Server”中的每個對象,使您能夠編寫出一些非常優秀而有意義的管理指令碼。
用 DTS,能夠採用某些完善的匯入/匯出機制,並使您能夠在轉換的任何一步中使用指令碼。重要的是,要注意指令碼可能不是操作資料的最佳方式 — 尤其是您的資料集很大的話。如果您有大量資料需要轉換,而且效能也很重要,則您可能需要考慮使用 Visual Basic 或 C++ 來建立 COM 組件,然後從 DTS 內部調用該組件。也就是說,如果效能並不重要,並且要在資料匯入/匯出時對它進行轉換,則指令碼為您提供了實現這一點的靈活機制,並使您能夠將所有代碼儲存到“SQL Server”資料庫中,使部署變得相當簡單。
關於 XML
目前,XML 看起來像是在應用程式之間共用資料的最佳工具,所以“SQL Server”的所有管理肯定都得到了 XML 的好處。編寫提取資料庫中所有資料的指令碼,以及編寫用編程的方法建立 XML 文檔的指令碼,都是可能的。但是,如果您只要查詢“SQL Server”的話,最好使它在 XML 中返回資料,然後用指令碼操作該 XML。“SQL Server”組最近發行了“SQL Server XML”技術的非正式版本,完全做到了這一點。
新的 XML 技術使用起來非常簡單。實際上是對伺服器發出 HTTP 要求,將查詢傳遞給伺服器,而伺服器返回 XML。為了舉例說明,我建立了簡單的 WSH 指令碼,它向本地機器查詢 North Wind 資料庫的僱員表中的所有資料。為訪問 XML,該指令碼使用了“Internet Explorer 5.01”附帶的 XML 剖析器。此對象的美妙之處,在於它處理您所有的 HTTP 要求,並使您能夠同步調用。因為您再也不用處理任何事件驅動的程式,所以,它對編寫指令碼很有協助。
該指令碼非常簡單。它建立了 XML 剖析器的執行個體,流量分析程式開啟 URL,然後將結果儲存為 .xml 檔案。只需五行的指令碼,不錯吧!