微軟公司的SQLServer是目前小型網絡中常用的數據庫管理系統之一
面向這種網絡數據庫的應用程序也在日益增多
這種網絡數據庫應用系統的正常運行
一般都依賴於已經存在的用戶數據庫
創建數據庫的工作當然可以用SQL Server提供的SQL EnterpriseManager工具來完成
但是
如果能夠提供一種定制的數據庫管理工具
專門管理應用系統需要的數據庫及其設備
對用戶來說無疑更加理想
一現存問題
我們知道在使用CREATEDATABASE語句創建一個數據庫之前必須存在一個有剩余空間的數據庫設備或者事先使用DISKINIT語句創建一個新設備但是這些語句含有很多必需的參數而且如果不使用SQLServer的管理工具很多參數值往往難以確定
以創建數據庫設備的DISKINIT語句為例這個語句的完整語法如下
DISKINITNAME=logical_namePHYSNAME=physical_nameVDEVNO=virtual_device_numberSIZE=number_of_K_blocks[VSTART=virtual_address]
其中NAME和SIZE這兩個參數都很容易得到麻煩的是物理名PHYSNAME和虛擬設備號VDEVNO這兩個參數前者要求是一個服務器上的物理文件全路徑名後者要求在~之間找一個沒有被別的設備占用的號碼而在編寫數據庫管理程序時用戶的服務器上有哪些設備號已經被占用SQLServer裝在哪個驅動器上都是無法預料的
雖然使用SQLServer的管理工具SQLEnterpriseManager可以非常方便地創建刪除數據庫設備或者擴大一個已經存在的數據庫也可以非常方便地創建刪除或者修改一個數據庫但是這個工具仍然要求我們輸入很多不太常用的參數界面稍顯復雜
所以理想的情況是用戶只需要按下一個命令按鈕應用程序需要的數據庫及其設備都能立即自動地創建好
二解決方案
為了實現這樣的目標我們必須想辦法解決SQL語句中的參數設置問題
.創建設備的語句參數
創建設備的語句即前面提到的DISKINIT語句
為了簡化問題我們可以指定與數據庫名相同的設備文件名並將設備文件保存在master設備所在的子目錄中數據庫名是在設計應用程序時已經確定而master設備所在的子目錄可以從系統表sysdevices中查詢得到這樣設備文件的物理名參數就確定下來了
[] [] []
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22492.html