據(jù)庫:命令行靜默安裝與遷移實戰(zhàn))
簡介面向在Windows 10 64位環(huán)境下部署MSDE 2000數(shù)據(jù)庫的用戶這份資源解決了老版本數(shù)據(jù)庫安裝時常見的兼容性難題尤其是SysWOW64目錄權(quán)限修改繁瑣、網(wǎng)上方案操作冗長而反復失敗的問題。作者將親測有效的一鍵處理方案與完整安裝程序打包成套實測安裝成功且可穩(wěn)定運行。壓縮包共50個文件、33.79MBmsi與msp為數(shù)據(jù)庫核心安裝包及組件補丁exe提供集成安裝入口reg文件為右鍵菜單添加管理員權(quán)限txt、htm為安裝說明與引導文檔dll、rll等為運行所需支持組件。資源已有5821人學習下載。借助該資源讀者無需再逐個搜索零散方案可直接按打包好的教程完成環(huán)境搭建安裝說明、權(quán)限修復工具、MSDE核心組件與補丁分門別類存放便于對照操作、快速定位安裝失敗的環(huán)節(jié)并排查解決。1. 為什么還要在 Win10 上裝 MSDE 2000 數(shù)據(jù)庫程序在 Win10 上安裝 MSDE 2000 數(shù)據(jù)庫程序聽起來像在給一臺新車裝化油器但很多從業(yè)者真的遇到這個需求 : 老 ERP、考勤系統(tǒng)、實驗數(shù)據(jù)管理軟件當年寫死在 MSDE 2000 上甲方不愿意換新電腦又只有 Win10。我的結(jié)論是先別急著換數(shù)據(jù)庫MSDE 2000 在 Win10 上能裝、能跑、能連只是不能雙擊 setup.exe 一路下一步得用命令行繞過 20 年前的老安裝器還要處理服務(wù)、端口和 ODBC 三個連環(huán)坑。這篇教程就照著這條路徑走從原理講到命令再講到 5 個高頻翻車點適合正在給老系統(tǒng)做環(huán)境遷移的工程師也適合第一次接觸這個老數(shù)據(jù)庫的新手。2. 裝之前先看明白MSDE 2000 是什么Win10 卡在哪2.1 MSDE 2000 到底是個什么數(shù)據(jù)庫和 SQL Server 2000 差多少MSDE 2000 全稱 Microsoft SQL Server 2000 Desktop Engine是微軟當年隨 Office、各種財務(wù)軟件和 MIS 系統(tǒng)分發(fā)的一個嵌入式數(shù)據(jù)庫引擎。它的核心就是 SQL Server 2000 的數(shù)據(jù)庫引擎語法、數(shù)據(jù)類型、存儲過程、事務(wù)機制和正式的 SQL Server 2000 幾乎一致最大區(qū)別是它沒有企業(yè)管理器、查詢分析器這些圖形界面工具也沒有分析服務(wù)、DTS 設(shè)計器這些外圍組件而且數(shù)據(jù)庫文件超過 2GB 之后就不再增長。很多老程序當初就是用 MSDE 2000 作為默認的“本地庫”打包分發(fā)的程序安裝完成時自動在機器上裝一個實例業(yè)務(wù)數(shù)據(jù)落在這個實例里開發(fā)者默認你會通過 ODBC 或者程序內(nèi)置的連接串去訪問它這也就解釋了為什么市面上還存著一批必須依賴它的系統(tǒng)。它運行時對應(yīng)的服務(wù)名是“SQL Server (實例名)”進程是 sqlservr.exe內(nèi)存占用不高單機并發(fā)要求不高時表現(xiàn)穩(wěn)定但它是按 2000 年代的安全模型設(shè)計的默認配置在今天的網(wǎng)絡(luò)環(huán)境里非常脆弱sa 密碼如果留空或者太弱等于把數(shù)據(jù)庫裸奔在局域網(wǎng)里。它在 Win10 上“難裝”的根子不在引擎本身而在發(fā)行年代。MSDE 2000 的安裝包基本是 2002 到 2004 年間生成的依賴的 Windows Installer 規(guī)則、MDAC 版本、系統(tǒng)目錄結(jié)構(gòu)和現(xiàn)在的差距很大。安裝器里有一段操作系統(tǒng)版本檢查看到 Win10 的版本號就直接拒絕很多時候不是裝不了是安裝包里的檢測邏輯攔住你了。2.2 Win10 缺了什么前置組件與系統(tǒng)檢查在動手之前建議先把環(huán)境底數(shù)摸清楚。MSDE 2000 在 XP/2003 時代安裝時通常會自動裝 MDAC微軟數(shù)據(jù)訪問組件和 MSXML還要求 Windows Installer 2.0 以上。Win10 自帶的 Windows Installer 版本早就超過這個要求但字典里的 MDAC 組件是被系統(tǒng)組件取代的如果安裝過程報錯 registry 相關(guān)的問題先別懷疑數(shù)據(jù)庫先看這些依賴是否可用。常見的做法是打開“啟用或關(guān)閉 Windows 功能”確認 .NET Framework 3.5 已經(jīng)被勾選安裝。MSDE 2000 不直接依賴 .NET但老程序配套的管理腳本和 ODBC 驅(qū)動往往依賴 .NET 2.0/3.5Win10 默認不裝 3.5這會在后續(xù)連接階段把問題引到數(shù)據(jù)庫頭上實則是前置環(huán)境缺失。隨后用管理員權(quán)限打開命令提示符跑兩條命令看系統(tǒng)狀態(tài)winver這條命令彈出系統(tǒng)版本信息確認是 Win10 的哪個版本一般 1809 之后的版本對老安裝包的兼容性處理不太一樣Win10 22H2 上做靜默安裝的成功率高于早期 1709。再查一下系統(tǒng)架構(gòu)和 Windows Installer 版本reg query HKLM\SYSTEM\CurrentControlSet\Control\Windows /v CSDVersion msiexec /?第一條約等于確認系統(tǒng)服務(wù)包級別新版本 Win10 返回空值屬正常第二條能看出 msiexec 版本如果輸出里出現(xiàn) Windows Installer 版本號說明安裝服務(wù)工作正常。如果連 msiexec 都沒響應(yīng)優(yōu)先修復 Windows Installer 服務(wù)否則后面所有 msi 參數(shù)都白搭。還有一個容易忽略的問題安裝路徑和用戶名不能帶中文。MSDE 2000 安裝器內(nèi)部的腳本對非 ASCII 字符處理有缺陷C:\Users\張三\Downloads 這種路徑會直接引發(fā) 25015 之類的錯誤。最好把安裝源放到一個純英文短路徑下比如 C:\msde。2.3 安裝源怎么備文件、路徑和授權(quán)的注意事項MSDE 2000 的典型安裝包有兩種形態(tài)一種是獨立的“MSDE 2000 Release A”安裝包解壓后有 setup.exe、SQLMSDE.msi以及若干 .cab 歸檔文件另一種是隨 SQL Server 2000 光盤分發(fā)的 MSDE 目錄。無論哪種核心文件都是 SQLMSDE.msi這是 Windows Installer 的數(shù)據(jù)庫包setup.exe 只是套了個交互外殼。建議把整個安裝源拷貝到 C:\msde2000 目錄下而不是直接雙擊光盤或者掛載鏡像里的 setup.exe。理由有兩個第一從只讀媒體安裝時Windows Installer 會在系統(tǒng)臨時目錄寫緩存容易被安全軟件誤傷第二拷貝到本地后路徑可控后面用 msiexec 指定安裝源時才不會出現(xiàn)找不到 .cab 的玄學問題??截愅瓿珊笾辽傧却_認目錄里有這幾個文件setup.exe、SQLMSDE.msi、sqlrun01.cab、sqlrun02.cab、sqlrun03.cab 等歸檔文件。如果只拿到一個 exe 自解壓包先解壓到目錄。可以用資源管理器右鍵解壓或者命令行執(zhí)行expand -R C:\下載\MSDE2000A.exe C:\msde2000這里的 expand 是 Windows 自帶的 CAB 展開工具-R 參數(shù)會保留目錄結(jié)構(gòu)。很多網(wǎng)上流傳的“MSDE 2000 精簡版”只有 setup.exe 和 msi沒有 cab這種包裝到一半會報找不到源文件建議不要在這類來源不明的打包版上浪費時間。授權(quán)方面要專門提一句MSDE 2000 的桌面引擎許可通常隨宿主軟件比如某個 ERP一起授權(quán)單獨拿它當通用數(shù)據(jù)庫用可能存在合規(guī)問題內(nèi)網(wǎng)搭建測試環(huán)境問題不大但要交付給客戶前先確認授權(quán)邊界。另外安裝前關(guān)閉殺毒軟件和 Windows Defender 的“文件夾保護”老安裝器寫注冊表和系統(tǒng)服務(wù)的行為很容易被殺軟判定為可疑裝到一半被攔下回滾又回滾不干凈這是重裝 25002 的主要來源之一。3. 命令行裝 MSDE 2000用 msiexec 繞過老安裝器3.1 為什么交互式 setup.exe 最容易翻車雙擊 setup.exe 進入安裝向?qū)г?Win10 上翻車概率極高。第一次彈窗可能是“此程序存在已知的兼容性問題”點繼續(xù)后安裝向?qū)茱@示但走到“系統(tǒng)配置檢查”步驟就停下報“Microsoft SQL Server 2000 不支持此操作系統(tǒng)”。這不是你的機器有問題是安裝包里的版本檢測函數(shù)把 Win10 識別成了不支持的對象。繞過這個問題有兩條路。一條是右鍵 setup.exe屬性里把兼容模式改成 Windows 7 或者 Windows XP (Service Pack 3)再以管理員身份運行這種方式對部分版本有效但兼容模式只騙過了外殼安裝程序內(nèi)部后續(xù)還有多處校驗經(jīng)常裝了十分鐘后回滾。另一條是繞開 setup.exe直接用 msiexec 安裝 SQLMSDE.msiWindows Installer 層面的安裝包本身沒有那層操作系統(tǒng)版本檢查靜默參數(shù)也更容易控制安裝行為。我用后者成功率明顯高交互式向?qū)菞l路經(jīng)??ㄔ凇鞍惭b程序配置”上。msiexec 方式還能順手解決一個麻煩安裝過程的完整日志。交互式安裝的錯誤彈窗一閃而過根本無從排查改用 msiexec 并指定日志輸出后每一步都能看到具體卡在哪條自定義動作上排錯效率完全不同。3.2 最小可用的靜默安裝命令與參數(shù)說明在管理員權(quán)限的命令提示符里執(zhí)行以下命令這是我驗證過的最穩(wěn)組合msiexec /i C:\msde2000\SQLMSDE.msi INSTANCENAMEMS2000 SECURITYMODESQL SAPWDPssw0rd!123 DISABLEAGENTYES REBOOTReallySuppress /qn /lv install.log拆開解釋這些參數(shù)的意義因為每一條都對應(yīng)著一個后期坑。INSTANCENAMEMS2000是給數(shù)據(jù)庫實例取名字這個名字會出現(xiàn)在 Windows 服務(wù)列表的“SQL Server (MS2000)”里也決定了后續(xù)連接串的寫法。如果不指定默認實例名是 MSSQLSERVER服務(wù)就是“SQL Server (MSSQLSERVER)”。指定命名實例的好處是避免以后機器上再裝 SQL Server Express 時服務(wù)名沖突建議一開始就不要用默認實例。SECURITYMODESQL表示采用混合身份驗證模式即同時允許 Windows 身份和 SQL 身份登錄。MSDE 2000 默認安裝出來是僅 Windows 身份驗證很多老程序用賬號密碼連不上庫就是因為這層默認值。顯式指定混合模式省得安裝完再改注冊表。SAPWDPssw0rd!123必須跟著 SECURITYMODESQL 一起出現(xiàn)它設(shè)置系統(tǒng)管理員 sa 的密碼。MSDE 2000 有個老毛病如果省略 SAPWD它可能把 sa 密碼設(shè)成空這在 Win10 上非常危險。密碼強度建議至少 8 位并含大小寫和數(shù)字別用什么 123456數(shù)據(jù)庫引擎不攔你但安全掃描工具會替你盯上。DISABLEAGENTYES表示不啟動 SQL Server Agent 服務(wù)。MSDE 2000 自帶的 Agent 主要用于計劃任務(wù)很多老系統(tǒng)用不上關(guān)掉可以減少一個自啟動服務(wù)和潛在報錯點。后面需要 Job 調(diào)度時再手動啟動服務(wù)即可。REBOOTReallySuppress壓制安裝程序的重啟請求。MSDE 安裝器有時會要求重啟在無人值守場景下特別煩加這個參數(shù)后安裝完成不重啟。/qn是真正意義上的靜默全程無界面如果想讓用戶看到進度條可以改成/qb。/lv install.log指定詳細日志文件排錯時主要看這個文件。3.3 安裝完怎么確認服務(wù)真的起來了命令執(zhí)行完后命令提示符直接返回沒有彈窗這時候別急著認為裝好了先查服務(wù)狀態(tài)sc query MSSQL$MS2000如果是命名實例 MS2000服務(wù)名就是MSSQL$MS2000。如果當時用了默認實例服務(wù)名是MSSQLSERVER。輸出里看 STATE 字段理想狀態(tài)是4 RUNNING。如果顯示1 STOPPED進系統(tǒng)日志確認原因。也可以直接看進程tasklist | findstr sqlservr能看到 sqlservr.exe 說明引擎進程在跑。接著確認實例的監(jiān)聽情況老程序一般要建立 TCP 連接所以這一步很關(guān)鍵netstat -ano | findstr 1433MSDE 2000 默認實例監(jiān)聽 1433 端口命名實例默認是動態(tài)端口。如果這里查不到 1433 但有別的端口說明引擎已經(jīng)監(jiān)聽某個動態(tài)端口需要把端口固定下來這在第 4 章會詳細處理。此刻只需確認 sqlservr.exe 有對應(yīng)的監(jiān)聽端口即可。最后翻一遍 install.log重點找 “Product: Microsoft SQL Server 2000 Desktop Engine --- Installation completed successfully” 這一行。即使服務(wù)已經(jīng)跑起來也建議確認這行日志存在它表示 Windows Installer 層面的組件注冊全部完成否則后期卸載或升級時還會出問題。4. 讓老程序連上庫osql 驗證、端口與 ODBC 配置4.1 先用 osql 驗證實例和 sa 密碼服務(wù)起來了不等于程序能連上第一步用 SQL Server 2000 自帶的 osql 工具做冒煙測試。osql 是命令行查詢工具MSDE 2000 安裝后會自動放到系統(tǒng)目錄。在命令提示符里執(zhí)行osql -S .\MS2000 -U sa -P Pssw0rd!123 -Q SELECT VERSION參數(shù)說明-S .\MS2000指定服務(wù)器地址點號表示本機反斜杠后面是實例名-U和-P分別指定用戶名和密碼密碼如果包含特殊字符用雙引號包起來更保險-Q后面跟要執(zhí)行的 SQL這里查詢版本號。如果輸出有Microsoft SQL Server 2000 - 8.00.xxxx這類信息說明引擎和賬號都正常。常見失敗輸出是 “Login failed for user sa”優(yōu)先查 sa 密碼是不是安裝時設(shè)置的那個還有一種是 “Could not open a connection to SQL Server”這說明實例名寫錯了或者服務(wù)根本不在運行。osql 能過以后測試老程序的連接串才能保持平常心。許多老程序連接串寫作ProviderSQLOLEDB;Data Source(local);Initial Catalogyourdb;User IDsa;Passwordxxx這里的(local)解析到默認實例。而我們安裝的是命名實例 MS2000連接串里 Data Source 必須是.\\MS2000或者計算機名\\MS2000這一字之差會讓老程序一直報連不上數(shù)據(jù)庫。4.2 固定 TCP 端口與防火墻規(guī)則命名實例默認采用動態(tài)端口每次服務(wù)重啟后端口可能變化對老系統(tǒng)非常不友好因為它們配置的連接串里通常寫著固定端口 1433。所以要把 MS2000 的端口固定住。常見做法是先用 netstat 查到當前端口再在注冊表里指定。netstat -ano | findstr sqlservr找到 sqlservr.exe 對應(yīng) PID 的監(jiān)聽地址看到類似0.0.0.0:1433或者0.0.0.0:1458。然后用 regedit 導航到HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MS2000\MSSQLServer\SuperSocketNetLib\Tcp把Enabled值改為 1把TcpPort改成 1433。如果路徑里的實例名不對先查一下注冊表里實際存在的鍵名。改完后重啟 SQL Server 服務(wù)net stop MSSQL$MS2000 net start MSSQL$MS2000重啟后再用netstat -ano | findstr 1433確認監(jiān)聽端口已固定在 1433。Win10 默認防火墻會攔截 1433 端口的外部訪問局域網(wǎng)內(nèi)其他機器要連這臺庫時需要放行。管理員命令提示符執(zhí)行netsh advfirewall firewall add rule nameMSSQL-MS2000 dirin actionallow protocolTCP localport1433這條規(guī)則只放行 TCP 1433作用域默認是所有網(wǎng)絡(luò)。如果老程序全部在本機這條防火墻規(guī)則可以不設(shè)但按經(jīng)驗同事的機器要連過來測試直接開端口省得再叫一次 IT。4.3 老程序連不上庫時的 ODBC 排查方向sqlservr 在監(jiān)聽防火墻也放行了老程序還報錯這時大概率是 ODBC 驅(qū)動層的毛病。MSDE 2000 對應(yīng)驅(qū)動程序是系統(tǒng)自帶的 “SQL Server” 驅(qū)動sqlsrv32.dll不是后來 SQL Server 2005 起主推的 “SQL Server Native Client”。老 Delphi、PB、ASP 程序如果寫在連接串里指定了 ProviderSQLOLEDB就依賴系統(tǒng)的 OLEDB 提供程序Win10 32 位和 64 位兩套注冊表里都需要確認。排查時先打開 32 位 ODBC 管理器看一下有沒有可用的 SQL Server 驅(qū)動C:\Windows\SysWOW64\odbcad32.exe注意路徑里是 SysWOW64這是 32 位 ODBC 管理器的正確位置。如果系統(tǒng)里只有 64 位管理器C:\Windows\System32\odbcad32.exe打開后看到的數(shù)據(jù)源和 32 位程序看到的完全不同這也是常見誤區(qū)。在 32 位管理器里新建一個系統(tǒng) DSN選 “SQL Server” 驅(qū)動服務(wù)器填.\MS2000然后按向?qū)y試連接。能通過說明驅(qū)動正常不能通過按提示的錯誤號定位是賬號還是協(xié)議問題。還有一類老程序用的是文件 DSN或者連接串里寫了Server機器名而沒有實例名這會導致程序嘗試連默認實例。要么把程序連接配置改成機器名\MS2000要么把 MS2000 改成默認實例重裝我一般建議改配置文件而不是重裝。5. 避坑Win10 裝 MSDE 2000 的 5 個高頻翻車點5.1 現(xiàn)象安裝器報“不支持此操作系統(tǒng)”直接退出這是最常見的攔截雙擊 setup.exe 后彈窗提示系統(tǒng)版本不受支持確定后安裝向?qū)АT虿皇?Win10 不能運行 SQL Server 2000 引擎而是 setup.exe 外殼做過硬性的操作系統(tǒng)版本檢查Win10 的版本號不在白名單里。解決方式就是繞開這個外殼直接以管理員身份運行msiexec /i C:\msde2000\SQLMSDE.msi INSTANCENAMEMS2000 SECURITYMODESQL SAPWD你的強密碼 DISABLEAGENTYES /qn /lv install.log如果堅持用 setup.exe可以右鍵屬性在兼容性里選擇 Windows 7但只對外殼有效安裝進程內(nèi)部后續(xù)仍可能因路徑、權(quán)限問題回滾。我的習慣是只用 msiexec省事且日志完整。5.2 現(xiàn)象裝到一半報 25015安裝回滾安裝進度條走到某個點后彈窗顯示錯誤 25015注冊組件失敗之類隨后整體回滾服務(wù)也沒有創(chuàng)建。原因大概率是安裝目錄或臨時目錄位于中文路徑或者安全軟件攔截了注冊表寫入。解決方式是把整個安裝源放到純英文短路徑比如 C:\msde2000并提前關(guān)閉第三方殺軟和 Windows Defender 實時保護。再不行就手動指定臨時目錄msiexec 支持設(shè)置 TMP 環(huán)境變量后執(zhí)行。安裝日志里出現(xiàn) “CustomAction” 和 “return value 3” 字樣時基本就是組件注冊動作失敗逐條對照日志找到具體 dll 或 exe用 regsvr32 手動注冊后再重試。5.3 現(xiàn)象服務(wù)啟動后立刻停止安裝正常完成但啟動 SQL Server 服務(wù)時提示服務(wù)啟動后又停止或者啟動成功幾秒后進程消失。先打開事件查看器里的應(yīng)用程序日志找到來源 “MSSQLSERVER” 或 “MSSQL$MS2000” 的錯誤記錄如果錯誤信息指向無法打開目錄或權(quán)限不足常見原因是安裝時實例目錄在 Program Files 下Network Service 賬戶沒有完全控制權(quán)限。解決方式是給安裝目錄添加權(quán)限或者直接把服務(wù)登錄身份改成本地系統(tǒng)賬戶。sc config MSSQL$MS2000 obj LocalSystem net start MSSQL$MS2000sc 命令里的obj LocalSystem指定服務(wù)以本地系統(tǒng)賬戶運行后面等于號后面要保留一個空格。MSDE 2000 默認服務(wù)賬戶是 LocalSystem即使改成 LocalSystem 仍啟動失敗再看日志里是否提到端口被占用同一臺機器裝過其他 SQL Server 實例時可能搶占了 1433把新實例端口改成 1434 或固定成其他值即可。5.4 現(xiàn)象msi 文件雙擊沒反應(yīng)或提示無法打開很多新手拿到安裝包后雙擊 SQLMSDE.msi系統(tǒng)提示“無法打開此程序包”或者根本沒有任何反應(yīng)。原因通常是安裝了第三方 msi 修復工具篡改了系統(tǒng)默認的 Installer 行為或者用戶當前賬戶權(quán)限不夠。解決方案是不雙擊直接用管理員命令提示符執(zhí)行 msiexec。還見過一個特例文件從網(wǎng)絡(luò)共享或郵件里保存下來資源管理器鎖定了解壓屬性右鍵 msi 文件屬性里如果看到“解除鎖定”復選框先勾掉再執(zhí)行即可。5.5 現(xiàn)象卸載重裝時報 25002提示已有實例存在第一次安裝失敗或者裝完又要重裝msiexec 卸載后再次安裝卻報錯誤 25002說已有相同名稱的實例存在。原因是最初安裝失敗時報錯回滾不徹底Windows Installer 的注冊表里殘留了實例信息服務(wù)也可能還掛在系統(tǒng)里。解決方式先徹底清殘留net stop MSSQL$MS2000 msiexec /x C:\msde2000\SQLMSDE.msi INSTANCENAMEMS2000 /qn卸載命令執(zhí)行完再打開注冊表編輯器刪除HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MS2000整個鍵以及HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall下凡是名稱帶 MSDE 2000 的項。然后把整個服務(wù)記錄也清掉sc delete MSSQL$MS2000最后重啟一次系統(tǒng)再重新安裝。這一步里最容易翻車的是只刪了安裝目錄就重裝注冊表殘留會反復觸發(fā) 25002所以搜注冊表時關(guān)鍵字不要只搜實例名還要搜 Desktop Engine。6. 搬遷到新環(huán)境的最后一步把 MSDE 2000 的數(shù)據(jù)導出來6.1 用 detach/attach 把整個數(shù)據(jù)庫搬走MSDE 2000 裝好、服務(wù)穩(wěn)定運行這只是開始真正要做的是把客戶的業(yè)務(wù)數(shù)據(jù)從這個老引擎里完整無損地搬出來。最省事的方式不是重新建表導數(shù)據(jù)而是分離數(shù)據(jù)庫文件再附加到目標 SQL Server 實例上。SQL Server 2000 的庫文件結(jié)構(gòu)很干凈一個數(shù)據(jù)庫對應(yīng)主文件 .mdf 和日志文件 .ldf放在安裝目錄\Data 下。分離后把這兩個文件拷貝到新機器附加一下表和存儲過程原樣保留。EXEC sp_detach_db yourdb;執(zhí)行上面這行 SQL把 yourdb 替換成實際數(shù)據(jù)庫名分離成功后文件就可以拷貝了。如果分離失敗提示數(shù)據(jù)庫正在使用先把對應(yīng)的客戶端程序退出必要時停掉 SQL Server 服務(wù)再拷文件。這個操作是 SQL Server 2000 時代的標準手法不依賴任何圖形工具。分離完成后把 .mdf 和 .ldf 拷貝到新機器 SQL Server 的 Data 目錄再執(zhí)行附加EXEC sp_attach_db yourdb, NC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\yourdb.mdf, NC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\yourdb_log.ldf;附加這條命令的路徑按新機器實際安裝目錄調(diào)整文件路徑要寫絕對路徑。如果目標不是 SQL Server 2000/2005而是更新的 SQL Server Express附加時可能提示版本兼容問題那就改用導入導出方式用向?qū)нx擇本機 MSDE 2000 作為數(shù)據(jù)源目標選擇新實例逐表遷移。做完這一步整臺 Win10 機器上那個老數(shù)據(jù)庫就算真正落地了。我的習慣是裝完立刻把 sa 密碼、實例名、固定端口記在一個文本文件里跟數(shù)據(jù)庫備份放一起這個年代能維護 MSDE 2000 的人越來越少一條連接串信息能救回一晚上排查時間。希望這份安裝教程能幫你把老系統(tǒng)穩(wěn)當?shù)匕徇M新環(huán)境少踩幾個我當年踩過的坑。本文還有配套的精品資源點擊獲取