ASP.NET Membership 預設使用 aspnetdb.mdf(SQL Express 附加資料庫),但在正式環境常需:
Northwind)中。GUI 精靈 (aspnet_regsql.exe 無參數啟動) 無法滿足上述需求,命令列模式才是正解。
aspnet_regsql.exe -E -S localhost -d Northwind -A all -sqlexportonly c:\membership.sql
| 參數 | 含義 | 備註 |
|---|---|---|
-E | 使用 Windows 整合驗證 | 生產環境建議改用 -U/-P 指定 SQL 登入 |
-S localhost | 目標 SQL Server 執行個體 | 可為 IP、機器名、.\SQLEXPRESS 等 |
-d Northwind | 目標資料庫名稱 | 資料庫必須已存在 |
-A all | 安裝所有功能 | 包含 Membership、Role、Profile、Personalization、WebEvent、SqlCacheDependency |
-sqlexportonly | 關鍵:僅匯出 SQL 腳本,不實際執行 | 輸出檔案路徑緊隨其後 |
c:\membership.sql | 輸出檔案完整路徑 | 確保寫入權限 |
aspnet_regsql.exe -E -S .\SQL2019 -d MyAppDb -A mr -sqlexportonly membership_role.sql
-A 可組合:m(Membership) r(Role) p(Profile) c(Personalization) w(WebEvent) s(SqlCacheDependency)。
aspnet_regsql.exe -E -S localhost -d MyDb -A all -sqlexportonly custom.sql
# 輸出腳本中預設 Schema 為 dbo,表名為 aspnet_*
# 若需自訂,需事後手動修改腳本或使用 SMO 程式化重命名
工具本身不支援直接指定 Schema/前綴,匯出後以 REPLACE 或正則批次修改是常見做法。
aspnet_regsql.exe -E -S localhost -d Northwind -R all -sqlexportonly drop_membership.sql
-R 為移除操作,配合 -sqlexportonly 可生成 DROP TABLE/DROP PROC 腳本,便於版本回滾。
.sql。SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 'aspnet_%' 確認 10 張核心表 + 視圖 + 預存程序。aspnet_SchemaVersions 表,確認版本號與 .NET Framework 版本對應(如 1, 1, 11425, 1 對應 4.x)。若專案為新開發或正在遷移至 ASP.NET Core,建議直接採用 ASP.NET Core Identity,其 EF Core Migrations 機制原生支援程式碼優先、跨資料庫、無縫整合 DI 容器,避免維護舊版 Membership 的存儲過程與資料表結構。