功能特色
- 瀏覽伺服器所有資料庫、資料表/視圖、欄位定義、外鍵關聯。
- 僅需修改連線字串(DSN、帳號、密碼)即可部署。
- 採用 JScript 撰寫,輕量、無需編譯。
核心程式碼片段
<%@ LANGUAGE = JScript %>
<%
var ConnStr = "DSN=admin";
var UserLogin = "sa";
var UserPassWord = "";
var Conn = Server.CreateObject("ADODB.Connection");
Conn.Open(ConnStr, UserLogin, UserPassWord);
// 取得資料庫清單
var rsDb = Conn.Execute("SELECT name, name FROM master.dbo.sysdatabases ORDER BY name");
// 產生下拉選單...
// 使用者選擇資料庫後,取得資料表/視圖
var rsTbl = Conn.Execute(
"SELECT id, name FROM " + DbName + ".dbo.sysobjects " +
"WHERE type IN ('U','V') AND category <> 2 ORDER BY Name");
// 選擇資料表後,查詢欄位結構
var rsCol = Conn.Execute(
"SELECT C.name, T.name, C.length, C.xprec, C.xscale, " +
"C.colstat, C.isnullable, " +
"CASE WHEN C.autoval IS NULL THEN 0 ELSE 1 END AS isIdentity, " +
"SC.text AS defaultValue, " +
"(SELECT CForeign.name + ' of ' + " +
" '<a href=...><b>' + O.name + '</b></a>' " +
" FROM " + DbName + ".dbo.sysreferences SR, " +
" " + DbName + ".dbo.sysobjects O, " +
" " + DbName + ".dbo.syscolumns CForeign " +
" WHERE SR.fkeyid = " + TbId + " AND SR.fkey1 = C.colid " +
" AND SR.rkeyid = O.id AND CForeign.id = O.id AND CForeign.colid = SR.rkey1" +
") AS foreignKeyRef " +
"FROM " + DbName + ".dbo.syscolumns C, " +
" " + DbName + ".dbo.systypes T, " +
" " + DbName + ".dbo.syscomments SC " +
"WHERE C.id = " + TbId + " AND C.xtype = T.xusertype AND C.cdefault *= SC.id " +
"ORDER BY C.colid");
部署提示
- 建立系統 DSN「admin」指向目標 SQL Server。
- 將 .asp 檔置於 IIS 虛擬目錄,確保 IUSR 有權限存取 DSN。
- 若需中文介面,將
CharSet = "gb2312" 改為 "big5" 或 "utf-8"。