在項目開發(fā)過程中,操作數(shù)據(jù)庫的過程中經(jīng)常會遇到對表結(jié)構(gòu)、存儲過程等進行修改,這時一般的操作都是通過直接在SQL Server中的企業(yè)管理器進行操作,或者查詢分析器里來執(zhí)行相關(guān)的語句,而我們在實際應(yīng)用中為了安全,一般能盡可能少的接觸數(shù)據(jù)庫服務(wù)器,如果對數(shù)據(jù)庫方面如果有著良好的編程風(fēng)格的時候,我們一般對會對所更改的生成一個SQL文件,而通過.NET程序來進行數(shù)據(jù)表及存儲過程的更新就會有更方便的操作性了。
首先我們需要把SQL文件傳到對應(yīng)的WEB目錄中,是把這個文件拷貝到一個遠程用戶不易訪問的受保護的地方。
微軟的SQL Server產(chǎn)品組已經(jīng)編寫好了這個操作頁面,通過訪問http://www.codeplex.com/sqlhost/Wiki/View.aspx?title=UploadAndExecute這個頁面,就可以看到RunSQL.aspx這個鏈接,點擊它就可以下載了一個名為FileDownload.aspx的頁面,在代碼中我們可以看到已經(jīng)定義的兩個參數(shù),代碼如下:
// Url of the T-SQL file you want to run
string fileUrl = @"http://<>/<>.sql";
// Connection string to the server you want to execute against
string connectionString = @"<>";
fileUrl代表上傳SQL文件的存放路徑地址和名稱,connectionString代表數(shù)據(jù)庫連接字符串,然后需要把FileDownload.aspx上傳到服務(wù)器的WEB目錄下,需要直接能通過域名訪問到。
然后通過瀏覽器訪問遠程的FileDownload.aspx網(wǎng)頁,這時候遠程服務(wù)器上的頁面會分析 .SQL 文件,并且執(zhí)行其中的所有SQL語句。 執(zhí)行成功后,會提示“T-SQL file executed successfully”,否則會提示具體的錯誤信息。
為了安全,運行完SQL 腳本文件后,把FileDownload.aspx網(wǎng)頁和SQL 文件從遠程服務(wù)器上刪除。
考試大提示:如果需要保留這個功能,而且在維護的時候可能會經(jīng)常操作一些SQL語句組,這時候,可以對FileDownload.aspx改造一下,這時候可以做以下幾個改進:
1) 增加權(quán)限部分功能,禁止非法用戶訪問此頁面,如只允許后臺管理員進行操作;
2) 可以通過后臺傳本氐腟QL文件,上傳到服務(wù)器指定目錄,然后此頁面通過動態(tài)讀取此文件;
3) 對數(shù)據(jù)庫連接字符串也采用讀取WEB.CONFIG形式,便于數(shù)據(jù)庫的統(tǒng)一管理。
感興趣的讀者可以按此進行進一步的擴充。這樣就通過.NET建成了一個非常靈活的數(shù)據(jù)庫操作頁面了,這樣我們在每一次對產(chǎn)品進行升級或者打補丁時候,對數(shù)據(jù)庫方面的操作,可以建立一個整個的SQL文件進行維護了。
首先我們需要把SQL文件傳到對應(yīng)的WEB目錄中,是把這個文件拷貝到一個遠程用戶不易訪問的受保護的地方。
微軟的SQL Server產(chǎn)品組已經(jīng)編寫好了這個操作頁面,通過訪問http://www.codeplex.com/sqlhost/Wiki/View.aspx?title=UploadAndExecute這個頁面,就可以看到RunSQL.aspx這個鏈接,點擊它就可以下載了一個名為FileDownload.aspx的頁面,在代碼中我們可以看到已經(jīng)定義的兩個參數(shù),代碼如下:
// Url of the T-SQL file you want to run
string fileUrl = @"http://<>/<>.sql";
// Connection string to the server you want to execute against
string connectionString = @"<>";
fileUrl代表上傳SQL文件的存放路徑地址和名稱,connectionString代表數(shù)據(jù)庫連接字符串,然后需要把FileDownload.aspx上傳到服務(wù)器的WEB目錄下,需要直接能通過域名訪問到。
然后通過瀏覽器訪問遠程的FileDownload.aspx網(wǎng)頁,這時候遠程服務(wù)器上的頁面會分析 .SQL 文件,并且執(zhí)行其中的所有SQL語句。 執(zhí)行成功后,會提示“T-SQL file executed successfully”,否則會提示具體的錯誤信息。
為了安全,運行完SQL 腳本文件后,把FileDownload.aspx網(wǎng)頁和SQL 文件從遠程服務(wù)器上刪除。
考試大提示:如果需要保留這個功能,而且在維護的時候可能會經(jīng)常操作一些SQL語句組,這時候,可以對FileDownload.aspx改造一下,這時候可以做以下幾個改進:
1) 增加權(quán)限部分功能,禁止非法用戶訪問此頁面,如只允許后臺管理員進行操作;
2) 可以通過后臺傳本氐腟QL文件,上傳到服務(wù)器指定目錄,然后此頁面通過動態(tài)讀取此文件;
3) 對數(shù)據(jù)庫連接字符串也采用讀取WEB.CONFIG形式,便于數(shù)據(jù)庫的統(tǒng)一管理。
感興趣的讀者可以按此進行進一步的擴充。這樣就通過.NET建成了一個非常靈活的數(shù)據(jù)庫操作頁面了,這樣我們在每一次對產(chǎn)品進行升級或者打補丁時候,對數(shù)據(jù)庫方面的操作,可以建立一個整個的SQL文件進行維護了。