ADOX 僅能建立 Access 資料庫。針對 SQL Server,提供兩種 ASP 實作方法:
<%
Dim oConn, sDatabaseName
sDatabaseName = "test1"
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=SQLOLEDB;Data Source=your_server;User ID=sa;Password=your_sa_password;"
oConn.Execute "CREATE DATABASE " & sDatabaseName
oConn.Close
Set oConn = Nothing
%>
<%
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_sa_password"
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
' 記錄檔
Set oLogFile = Server.CreateObject("SQLDMO.LogFile")
With oLogFile
.Name = sDatabaseName & "_log"
.PhysicalName = sDataPath & "\" & sDatabaseName & "_log.ldf"
End With
' 關聯檔案到資料庫
oDatabase.FileGroups("PRIMARY").DBFiles.Add oDBFileData
oDatabase.TransactionLog.LogFiles.Add oLogFile
' 建立資料庫
oSQLServer.Databases.Add oDatabase
' 清理
oSQLServer.Close
Set oLogFile = Nothing
Set oDBFileData = Nothing
Set oDatabase = Nothing
Set oSQLServer = Nothing
%>
| 維度 | 方法一:ADO + CREATE DATABASE | 方法二:SQL-DMO |
|---|---|---|
| 程式碼複雜度 | 低 | 高 |
| 檔案路徑控制 | 預設 | 完整自訂 |
| 檔案大小/成長參數 | 預設 | 完整自訂 |
| 檔案群組設定 | 無 | 支援 |
| 相依性 | SQLOLEDB Provider | SQL-DMO (需安裝 SQL Server 用戶端工具) |
兩種方法均可在 ASP 環境下程式化建立 SQL Server 資料庫,依專案需求選擇適當層級的控制力。