您的位置:首页 > 数据库

将 MS SQL Server 2005 SP2 整合到安装文件中

2008-04-30 00:18 615 查看
MacroPatch的补丁总是很慢,整合后安装是最好的方法。
1) 准备
&nbSP;&nbSP; 解压 SQLServer2005SP2-KB921896-x86-CHS.exe 文件(使用 WinRAR 可直接解压,或使用 /extract)
&nbSP;&nbSP; 取出解压后的文件中的所有 *.MSi 和 *.MSp 文件(全部都在 hotfix* 文件夹中) 放到 D:/SP2 中.
&nbSP;&nbSP; 解压 cs_SQL_dev_all_dvd.iso(SQL Server 2005 开发版) 中的 x86 版本,放到 D:/MSSQL 中;此时 D:/MSSQL 中应该有以下文件和文件夹 autorun.inf,Servers,Tools。
&nbSP;&nbSP; 跳到 2)。
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;
2) 使用以下方法之一整合
&nbSP;&nbSP;&nbSP;&nbSP;
&nbSP;&nbSP; A) 按以下方法整合
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; 复制 D:/SP2 文件夹中的 *.MSi 文件覆盖 D:/MSSQL/Server/Setup 和 D:/MSSQL/Tools/Setup 中的文件。
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; 执行以下命令,每个命令必须在弹出 "安装完成" 对话框后才能执行下一个命令(前 5 个命令可能没有 "安装完成" 对话框。).
MSiexec /a D:/MSSQL/Server/SQLrun_as.MSi TARGETDIR=D:/SWAP
MSiexec /a D:/MSSQL/Server/SQLrun_dts.MSi TARGETDIR=D:/SWAP
MSiexec /a D:/MSSQL/Server/SQLrun_nsMSi TARGETDIR=D:/SWAP
MSiexec /a D:/MSSQL/Server/SQLrun_rs.MSi TARGETDIR=D:/SWAP
MSiexec /a D:/MSSQL/Server/SQLrun_SQL.MSi TARGETDIR=D:/SWAP
MSiexec /a D:/SWAP/SQLrun_as.MSi /p D:/SP2/SQLrun_as.MSp
MSiexec /a D:/SWAP/SQLrun_dts.MSi /p D:/SP2/SQLrun_dts.MSp
MSiexec /a D:/SWAP/SQLrun_ns.MSi /p D:/SP2/SQLrun_ns.MSp
MSiexec /a D:/SWAP/SQLrun_rs.MSi /p D:/SP2/SQLrun_rs.MSp
MSiexec /a D:/SWAP/SQLrun_SQL.MSi /p D:/SP2/SQLrun_SQL.MSp

&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; 复制 D:/SWAP 文件夹中的所有文件到 D:/MSSQL/Server/Setup 文件夹。
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; 删除 D:/SWAP 文件夹。

MSiexec /a D:/MSSQL/Tools/SQLrun_tools.MSi TARGETDIR=D:/SWAP
MSiexec /a D:/SWAP/SQLrun_tools.MSi /p D:/SP2/SQLrun_tools.MSp
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; 复制 D:/SWAP 文件夹中的所有文件到 D:/MSSQL/Tools/Setup 文件夹。
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; 删除 D:/SWAP 文件夹。
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; 删除 D:/SP2 文件夹。
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; 跳到 3)。
&nbSP; B) 使用Windows 脚本安装
&nbSP; INSTALL_SQL_SP2.JS

/////////////////////////////////////////////////
// Slipsteaming MSSQL Server 2005 SP2
// Author&nbSP; : Zealic
// Date&nbSP;&nbSP;&nbSP; : 2007-03-19
// Version : 1.00
/////////////////////////////////////////////////
var swap&nbSP; = "D://SWAP";
var SQLdir = "D://MSSQL";
var SP2&nbSP;&nbSP;&nbSP; = "D://SP2";
var Server = setup + "//Server//Setup";
var tools&nbSP; = setup + "//Tools//Setup";
install();
function install()
{
&nbSP;&nbSP;&nbSP; WScript.Echo("Slipsteaming MSSQL Server 2005 SP2");
&nbSP;&nbSP;&nbSP; WScript.Echo("By Zealic");
&nbSP;&nbSP;&nbSP; WScript.Echo("Playse wait processing ");
&nbSP;&nbSP;&nbSP; try
&nbSP;&nbSP;&nbSP; {
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; installServer();
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; exec("DEL /Y " + swap );
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; installTools();
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; sucess();
&nbSP;&nbSP;&nbSP; }
&nbSP;&nbSP;&nbSP; catch(e)
&nbSP;&nbSP;&nbSP; {
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; WScript.Echo(e.name + " : " + e.message);
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; fail();
&nbSP;&nbSP;&nbSP; }
}
function installServer()
{
&nbSP;&nbSP;&nbSP; testRun("XCOPY /y /h " + SP2 + "//*.MSi " + Server);
&nbSP;&nbSP;&nbSP; testRun("MSiexec /quiet /a" + Server + "//SQLrun_as.MSi TARGETDIR=" + swap);
&nbSP;&nbSP;&nbSP; testRun("MSiexec /quiet /a" + Server + "//SQLrun_dts.MSi TARGETDIR=" + swap);
&nbSP;&nbSP;&nbSP; testRun("MSiexec /quiet /a" + Server + "//SQLrun_ns.MSi TARGETDIR=" + swap);
&nbSP;&nbSP;&nbSP; testRun("MSiexec /quiet /a" + Server + "//SQLrun_rs.MSi TARGETDIR=" + swap);
&nbSP;&nbSP;&nbSP; testRun("MSiexec /quiet /a" + Server + "//SQLrun_SQL.MSi TARGETDIR=" + swap);
&nbSP;&nbSP;&nbSP; testRun("MSiexec /a " + swap + "//SQLrun_as.MSi /p " + SP2 + "//SQLrun_as.MSp");
&nbSP;&nbSP;&nbSP; testRun("MSiexec /a " + swap + "//SQLrun_dts.MSi /p " + SP2 + "//SQLrun_dts.MSp");
&nbSP;&nbSP;&nbSP; testRun("MSiexec /a " + swap + "//SQLrun_ns.MSi /p " + SP2 + "//SQLrun_ns.MSp");
&nbSP;&nbSP;&nbSP; testRun("MSiexec /a " + swap + "//SQLrun_rs.MSi /p " + SP2 + "//SQLrun_rs.MSp");
&nbSP;&nbSP;&nbSP; testRun("MSiexec /a " + swap + "//SQLrun_SQL.MSi /p " + SP2 + "//SQLrun_SQL.MSp");
&nbSP;&nbSP;&nbSP; testRun("XCOPY /Y /E " + swap + " " + Server);
}
function installTools()
{
&nbSP;&nbSP;&nbSP; testRun("XCOPY /y /h " + SP2 + "//*.MSi " + tools);
&nbSP;&nbSP;&nbSP; testRun("MSiexec /quiet /a" + Server + "//SQLrun_tools.MSi TARGETDIR=" + setup);
&nbSP;&nbSP;&nbSP; testRun("MSiexec /a " + swap + "//SQLrun_tools.MSi /p " + SP2 + "//SQLrun_tools.MSp");
&nbSP;&nbSP;&nbSP; testRun("XCOPY /Y /E " + swap + " " + tools);
}
function testRun(runStr)
{
&nbSP;&nbSP;&nbSP; var wsh&nbSP;&nbSP;&nbSP; = new ActiveXObject("Wscript.Shell");
&nbSP;&nbSP;&nbSP; var sys32 = wsh.ExpandEnvironmentStrings("%WINDIR%//System32");
&nbSP;&nbSP;&nbSP; wsh.CurrentDirectory = sys32;
&nbSP;&nbSP;&nbSP; var ret&nbSP;&nbSP;&nbSP; = WScript.Run(runStr,0,true);
&nbSP;&nbSP;&nbSP; if(ret != 0)fail();
&nbSP;&nbSP;&nbSP; return ret;
}
function exec(runStr)
{
&nbSP;&nbSP;&nbSP; var wsh&nbSP;&nbSP;&nbSP; = new ActiveXObject("Wscript.Shell");
&nbSP;&nbSP;&nbSP; var shell = wsh.ExpandEnvironmentStrings("%COMSPEC%");
&nbSP;&nbSP;&nbSP; return wsh.Run(shell + " /K " + runStr,0,true);
}
function fail()
{
&nbSP;&nbSP;&nbSP; WScript.Echo("Process fail !!!!!!!!!!!!!!!!!!!!!");
&nbSP;&nbSP;&nbSP; WScript.Echo("Please retry execute this script.");
&nbSP;&nbSP;&nbSP; WScript.Echo("Press 'Enter' to exit");
&nbSP;&nbSP;&nbSP; WScript.StdIn.ReadLine();
&nbSP;&nbSP;&nbSP; WScript.Quit();
}
function sucess()
{
&nbSP;&nbSP;&nbSP; WScript.Echo("Process OK!");
&nbSP;&nbSP;&nbSP; WScript.Echo("Press 'Enter' to exit");
&nbSP;&nbSP;&nbSP; WScript.StdIn.ReadLine();
&nbSP;&nbSP;&nbSP; WScript.Quit();
}

3)打包
&nbSP;&nbSP; 打包为 ISO 或 RAR 待以后使用.
&nbSP;&nbSP; 整合后大小约 1.98G,用ISO优化封装后为 1.39G
&nbSP;&nbSP; 安装完成后,打开 Visual Studio 或 SQL Server SQL Management Studio,可以看到版本号为 9.00.3042.00
&nbSP;&nbSP;&nbSP;&nbSP; SQL Server 2005 版本号如下 :
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; ORIGIN : 9.00.1399.00
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; SP1&nbSP;&nbSP;&nbSP; : 9.00.2047.07
&nbSP;&nbSP;&nbSP;&nbSP;&nbSP;&nbSP; SP2&nbSP;&nbSP;&nbSP; : 9.00.3042.00
注 : 脚本安装法本人没有测试过(如果有问题,请告诉我,因为我已经把原始文件删了),方法1是叙述所有流程并且测试过的。
注2 :&nbSP; 2007-03-06 的 SP2 已经包含 KB933508 的更新,无需整合。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: