SQL Server 广泛应用于中小型网络环境,应用系统的正常运行依赖预先存在的用户数据库。虽然 SQL Enterprise Manager 可完成创建工作,但若能提供定制化的数据库管理工具,让用户一键自动创建所需数据库及设备,无疑更理想。
创建数据库前需存在有剩余空间的设备,或用 DISK INIT 创建新设备。该语句参数繁多,其中 PHYSNAME(物理全路径)和 VDEVNO(虚拟设备号 1-255 且未被占用)最难在代码中预判。
sysdevices 系统表查询获得。sysdevices 无直接字段,但通过分析系统存储过程 sp_helpdevice 发现,虚拟设备号“隐藏”在 low 字段中,借助 spt_values 系统表即可解析。循环检测 1-255 中未被占用的编号即可确定可用号码。CREATE DATABASE 大多参数可选,仅需指定设备名与大小,这些在创建设备时已确定,故无参数难题。
通过上述方案,应用程序可实现“一键式”自动创建数据库及其设备,极大降低用户操作门槛与出错风险。