將 MS SQL Server 2005 SP2 整合到安裝文件
MacroPatch的補丁總是很慢,整合后安裝是最好的方法。1) 準備 解壓 SQLServer2005SP2-KB921896-x86-CHS.exe 文件(使用 WinRAR 可直接解壓,或使用 /extract) 取出解壓后的文件中的所有 *.msi 和 *.msp 文件(全部都在 hotfix* 文件夾中) 放到 D:SP2 中.
解壓 cs_sql_dev_all_dvd.iso(SQL Server 2005 開發版) 中的 x86 版本,放到 D:MSSQL 中;此時 D:MSSQL 中應該有以下文件和文件夾 autorun.inf,Servers,Tools。 跳到 2)。
2) 使用以下方法之一整合 A) 按以下方法整合 復制 D:SP2 文件夾中的 *.msi 文件覆蓋 D:MSSQLServerSetup 和 D:MSSQLToolsSetup 中的文件。 執行以下命令,每個命令必須在彈出 '安裝完成' 對話框后才能執行下一個命令(前 5 個命令可能沒有 '安裝完成' 對話框。).
msiexec /a D:MSSQLServersqlrun_as.msi TARGETDIR=D:SWAPmsiexec /a D:MSSQLServersqlrun_dts.msi TARGETDIR=D:SWAPmsiexec /a D:MSSQLServersqlrun_nsmsi TARGETDIR=D:SWAPmsiexec /a D:MSSQLServersqlrun_rs.msi TARGETDIR=D:SWAPmsiexec /a D:MSSQLServersqlrun_sql.msi TARGETDIR=D:SWAPmsiexec /a D:SWAPsqlrun_as.msi /p D:SP2sqlrun_as.mspmsiexec /a D:SWAPsqlrun_dts.msi /p D:SP2sqlrun_dts.mspmsiexec /a D:SWAPsqlrun_ns.msi /p D:SP2sqlrun_ns.mspmsiexec /a D:SWAPsqlrun_rs.msi /p D:SP2sqlrun_rs.mspmsiexec /a D:SWAPsqlrun_sql.msi /p D:SP2sqlrun_sql.msp
復制 D:SWAP 文件夾中的所有文件到 D:MSSQLServerSetup 文件夾。 刪除 D:SWAP 文件夾。
msiexec /a D:MSSQLToolssqlrun_tools.msi TARGETDIR=D:SWAPmsiexec /a D:SWAPsqlrun_tools.msi /p D:SP2sqlrun_tools.msp
復制 D:SWAP 文件夾中的所有文件到 D:MSSQLToolsSetup 文件夾。 刪除 D:SWAP 文件夾。 刪除 D:SP2 文件夾。 跳到 3)。
B) 使用Windows 腳本安裝 INSTALL_SQL_SP2.JS
/////////////////////////////////////////////////// Slipsteaming MSSQL Server 2005 SP2// Author; : Zealic// Date;: 2007-03-19// Version : 1.00 /////////////////////////////////////////////////var swap; = 'D:SWAP';var sqldir = 'D:MSSQL';var sp2;= 'D:SP2';var server = setup + 'ServerSetup';var tools; = setup + 'ToolsSetup';
install();
function install(){ WScript.Echo('Slipsteaming MSSQL Server 2005 SP2'); WScript.Echo('By Zealic'); WScript.Echo('Playse wait processing '); try { installServer(); exec('DEL /Y ' + swap ); installTools(); sucess(); } catch(e) { WScript.Echo(e.name + ' : ' + e.message); fail(); }}
function installServer(){ testRun('XCOPY /y /h ' + sp2 + '*.msi ' + server); testRun('msiexec /quiet /a' + server + 'sqlrun_as.msi TARGETDIR=' + swap); testRun('msiexec /quiet /a' + server + 'sqlrun_dts.msi TARGETDIR=' + swap); testRun('msiexec /quiet /a' + server + 'sqlrun_ns.msi TARGETDIR=' + swap); testRun('msiexec /quiet /a' + server + 'sqlrun_rs.msi TARGETDIR=' + swap); testRun('msiexec /quiet /a' + server + 'sqlrun_sql.msi TARGETDIR=' + swap); testRun('msiexec /a ' + swap + 'sqlrun_as.msi /p ' + sp2 + 'sqlrun_as.msp'); testRun('msiexec /a ' + swap + 'sqlrun_dts.msi /p ' + sp2 + 'sqlrun_dts.msp'); testRun('msiexec /a ' + swap + 'sqlrun_ns.msi /p ' + sp2 + 'sqlrun_ns.msp'); testRun('msiexec /a ' + swap + 'sqlrun_rs.msi /p ' + sp2 + 'sqlrun_rs.msp'); testRun('msiexec /a ' + swap + 'sqlrun_sql.msi /p ' + sp2 + 'sqlrun_sql.msp'); testRun('XCOPY /Y /E ' + swap + ' ' + server);}
function installTools(){ testRun('XCOPY /y /h ' + sp2 + '*.msi ' + tools); testRun('msiexec /quiet /a' + server + 'sqlrun_tools.msi TARGETDIR=' + setup); testRun('msiexec /a ' + swap + 'sqlrun_tools.msi /p ' + sp2 + 'sqlrun_tools.msp'); testRun('XCOPY /Y /E ' + swap + ' ' + tools);}
function testRun(runStr){ var wsh;= new ActiveXObject('Wscript.Shell'); var sys32 = wsh.ExpandEnvironmentStrings('%WINDIR%System32'); wsh.CurrentDirectory = sys32; var ret;= WScript.Run(runStr,0,true); if(ret != 0)fail(); return ret;}
function exec(runStr){ var wsh;= new ActiveXObject('Wscript.Shell'); var shell = wsh.ExpandEnvironmentStrings('%COMSPEC%'); return wsh.Run(shell + ' /K ' + runStr,0,true);}
function fail(){ WScript.Echo('Process fail !!!!!!!!!!!!!!!!!!!!!'); WScript.Echo('Please retry execute this script.'); WScript.Echo('Press 'Enter' to exit'); WScript.StdIn.ReadLine(); WScript.Quit();}
function sucess(){ WScript.Echo('Process OK!'); WScript.Echo('Press 'Enter' to exit'); WScript.StdIn.ReadLine(); WScript.Quit();}
3)打包 打包為 ISO 或 RAR 待以后使用. 整合后大小約 1.98G,用ISO優化封裝后為 1.39G
安裝完成后,打開 Visual Studio 或 SQL Server SQL Management Studio,可以看到版本號為 9.00.3042.00 SQL Server 2005 版本號如下 : ORIGIN : 9.00.1399.00 SP1;: 9.00.2047.07 SP2;: 9.00.3042.00
注 : 腳本安裝法本人沒有測試過(如果有問題,請告訴我,因為我已經把原始文件刪了),方法1是敘述所有流程并且測試過的。
注2 :; 2007-03-06 的 SP2 已經包含 KB933508 的更新,無需整合。