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

来源:互联网 发布:穿越最后的幸存者知临 编辑:程序博客网 时间:2024/06/06 06:39
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
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 的更新,无需整合。<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击