方法一:ADO Execute CREATE DATABASE
<%
Dim oConn, sDatabaseName
sDatabaseName = "test1"
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=SQLOLEDB;Data Source=your_server;User ID=sa;Password=your_pass;"
oConn.Execute "CREATE DATABASE " & sDatabaseName
oConn.Close
Set oConn = Nothing
%>
方法二:SQLDMO 物件模型(支援檔案群、成長參數)
<%
Dim oSQLServer, oDatabase, oDBFileData, oLogFile
Dim sDatabaseName, sDataPath
sDatabaseName = "test1"
sDataPath = "C:\Program Files\Microsoft SQL Server\MSSQL\Data"
Set oSQLServer = Server.CreateObject("SQLDMO.SQLServer")
oSQLServer.Connect "your_server", "sa", "your_pass"
Set oDatabase = Server.CreateObject("SQLDMO.Database")
oDatabase.Name = sDatabaseName
Set oDBFileData = Server.CreateObject("SQLDMO.DBFile")
With oDBFileData
.Name = sDatabaseName & "_data"
.PhysicalName = sDataPath & "\" & sDatabaseName & "_data.mdf"
.PrimaryFile = True
.FileGrowthType = SQLDMOGrowth_MB
.FileGrowth = 1
End With
oDatabase.FileGroups.Item("PRIMARY").DBFiles.Add oDBFileData
Set oLogFile = Server.CreateObject("SQLDMO.LogFile")
With oLogFile
.Name = sDatabaseName & "_log"
.PhysicalName = sDataPath & "\" & sDatabaseName & "_log.ldf"
.FileGrowthType = SQLDMOGrowth_MB
.FileGrowth = 1
End With
oDatabase.TransactionLogFiles.Add oLogFile
oSQLServer.Databases.Add oDatabase
oSQLServer.DisConnect
%>
比較
| 特性 | ADO CREATE DATABASE | SQLDMO |
| 程式碼複雜度 | 極簡單 | 較繁瑣 |
| 檔案群/成長控制 | 不支援 | 完整支援 |
| 適用場景 | 快速建立預設資料庫 | 生產環境精細佈署 |