风舞残阳 2008-4-2 17:54
将 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(SQLServer2005开发版)中的x86版本,放到D:\MSSQL中;此时D:\MSSQL中应该有以下文件和文件夹autorun.inf,Servers,Tools。
跳到2)。
2)使用以下方法之一整合
A)按以下方法整合
复制D:\SP2文件夹中的*.msi文件覆盖D:\MSSQL\Server\Setup和D:\MSSQL\Tools\Setup中的文件。
执行以下命令,每个命令必须在弹出"安装完成"对话框后才能执行下一个命令(前5个命令可能没有"安装完成"对话框。).
msiexec/aD:\MSSQL\Server\sqlrun_as.msiTARGETDIR=D:\S[wiki]WAP[/wiki]
msiexec/aD:\MSSQL\Server\sqlrun_dts.msiTARGETDIR=D:\SWAP
msiexec/aD:\MSSQL\Server\sqlrun_nsmsiTARGETDIR=D:\SWAP
msiexec/aD:\MSSQL\Server\sqlrun_rs.msiTARGETDIR=D:\SWAP
msiexec/aD:\MSSQL\Server\sqlrun_sql.msiTARGETDIR=D:\SWAP
msiexec/aD:\SWAP\sqlrun_as.msi/pD:\SP2\sqlrun_as.msp
msiexec/aD:\SWAP\sqlrun_dts.msi/pD:\SP2\sqlrun_dts.msp
msiexec/aD:\SWAP\sqlrun_ns.msi/pD:\SP2\sqlrun_ns.msp
msiexec/aD:\SWAP\sqlrun_rs.msi/pD:\SP2\sqlrun_rs.msp
msiexec/aD:\SWAP\sqlrun_sql.msi/pD:\SP2\sqlrun_sql.msp
复制D:\SWAP文件夹中的所有文件到D:\MSSQL\Server\Setup文件夹。
删除D:\SWAP文件夹。
msiexec/aD:\MSSQL\Tools\sqlrun_tools.msiTARGETDIR=D:\SWAP
msiexec/aD:\SWAP\sqlrun_tools.msi/pD:\SP2\sqlrun_tools.msp
复制D:\SWAP文件夹中的所有文件到D:\MSSQL\Tools\Setup文件夹。
删除D:\SWAP文件夹。
删除D:\SP2文件夹。
跳到3)。
B)使用Windows脚本安装
INSTALL_SQL_SP2.JS
/////////////////////////////////////////////////
//SlipsteamingMSSQLServer2005SP2
//Author:Zealic
//Date:2007-03-19
//Version:1.00
/////////////////////////////////////////////////
varswap="D:\\SWAP";
varsqldir="D:\\MSSQL";
varsp2="D:\\SP2";
varserver=setup+"[url=file://Server//Setup]\\Server\\Setup[/url]";
vartools=setup+"[url=file://Tools//Setup]\\Tools\\Setup[/url]";
install();
functioninstall()
{
WScript.Echo("SlipsteamingMSSQLServer2005SP2");
WScript.Echo("ByZealic");
WScript.Echo("Playsewaitprocessing");
try
{
installServer();
exec("DEL/Y"+swap);
installTools();
sucess();
}
catch(e)
{
WScript.Echo(e.name+":"+e.message);
fail();
}
}
functioninstallServer()
{
testRun("XCOPY/y/h"+sp2+"[url=file://*.msi/]\\*.msi[/url]"+server);
testRun("msiexec/quiet/a"+server+"[url=file://sqlrun_as.msi/]\\sqlrun_as.msi[/url]TARGETDIR="+swap);
testRun("msiexec/quiet/a"+server+"[url=file://sqlrun_dts.msi/]\\sqlrun_dts.msi[/url]TARGETDIR="+swap);
testRun("msiexec/quiet/a"+server+"[url=file://sqlrun_ns.msi/]\\sqlrun_ns.msi[/url]TARGETDIR="+swap);
testRun("msiexec/quiet/a"+server+"[url=file://sqlrun_rs.msi/]\\sqlrun_rs.msi[/url]TARGETDIR="+swap);
testRun("msiexec/quiet/a"+server+"[url=file://sqlrun_sql.msi/]\\sqlrun_sql.msi[/url]TARGETDIR="+swap);
testRun("msiexec/a"+swap+"[url=file://sqlrun_as.msi/]\\sqlrun_as.msi[/url]/p"+sp2+"[url=file://sqlrun_as.msp/]\\sqlrun_as.msp[/url]");
testRun("msiexec/a"+swap+"[url=file://sqlrun_dts.msi/]\\sqlrun_dts.msi[/url]/p"+sp2+"[url=file://sqlrun_dts.msp/]\\sqlrun_dts.msp[/url]");
testRun("msiexec/a"+swap+"[url=file://sqlrun_ns.msi/]\\sqlrun_ns.msi[/url]/p"+sp2+"[url=file://sqlrun_ns.msp/]\\sqlrun_ns.msp[/url]");
testRun("msiexec/a"+swap+"[url=file://sqlrun_rs.msi/]\\sqlrun_rs.msi[/url]/p"+sp2+"[url=file://sqlrun_rs.msp/]\\sqlrun_rs.msp[/url]");
testRun("msiexec/a"+swap+"[url=file://sqlrun_sql.msi/]\\sqlrun_sql.msi[/url]/p"+sp2+"[url=file://sqlrun_sql.msp/]\\sqlrun_sql.msp[/url]");
testRun("XCOPY/Y/E"+swap+""+server);
}
functioninstallTools()
{
testRun("XCOPY/y/h"+sp2+"[url=file://*.msi/]\\*.msi[/url]"+tools);
testRun("msiexec/quiet/a"+server+"[url=file://sqlrun_tools.msi/]\\sqlrun_tools.msi[/url]TARGETDIR="+setup);
testRun("msiexec/a"+swap+"[url=file://sqlrun_tools.msi/]\\sqlrun_tools.msi[/url]/p"+sp2+"[url=file://sqlrun_tools.msp/]\\sqlrun_tools.msp[/url]");
testRun("XCOPY/Y/E"+swap+""+tools);
}
functiontestRun(runStr)
{
varwsh=newActiveXObject("Wscript.Shell");
varsys32=wsh.ExpandEnvironmentStrings("%WINDIR%\\System32");
wsh.CurrentDirectory=sys32;
varret=WScript.Run(runStr,0,true);
if(ret!=0)fail();
returnret;
}
functionexec(runStr)
{
varwsh=newActiveXObject("Wscript.Shell");
var[wiki]shell[/wiki]=wsh.ExpandEnvironmentStrings("%COMSPEC%");
returnwsh.Run(shell+"/K"+runStr,0,true);
}
functionfail()
{
WScript.Echo("Processfail!!!!!!!!!!!!!!!!!!!!!");
WScript.Echo("Pleaseretryexecutethisscript.");
WScript.Echo("Press'Enter'toexit");
WScript.StdIn.ReadLine();
WScript.Quit();
}
functionsucess()
{
WScript.Echo("ProcessOK!");
WScript.Echo("Press'Enter'toexit");
WScript.StdIn.ReadLine();
WScript.Quit();
}
3)打包
打包为ISO或RAR待以后使用.
整合后大小约1.98G,用ISO优化封装后为1.39G
安装完成后,打开VisualStudio或SQLServerSQLManagementStudio,可以看到版本号为9.00.3042.00
SQLServer2005版本号如下:
ORIGIN:9.00.1399.00
SP1:9.00.2047.07
SP2:9.00.3042.00
注:脚本安装法本人没有[wiki]测试[/wiki]过(如果有问题,请告诉我,因为我已经把原始文件删了),方法1是叙述所有流程并且测试过的。
注2:2007-03-06的SP2已经包含KB933508的更新,无需整合。