SQL  Server无人值守安装                 
第1步:  判断SQL  Server是否已经安装过,如果已经安装,则启动服务器(第4步);  
           SQL  Server是否已经安装的判断方法:  
           HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Setup下的SQLPath键值  
           为SQL  Server的安装路径,判断安装路径是否存在就可以了。  
第2步:  SQL  Server的安装命令:  
           如果是桌面版本:  
           SETUPSQL.EXE  k=Dk  -s  -m  -SMS  -f1  sql70ins.iss  
           否则去掉参数:k=Dk  
第3步:  建一个循环,通过进程来判断安装程序的结束,一旦结束则启动服务器(第4步);  
第4步:  通过进程来判断SQL  Server服务是否已经启动,如果已经启动则做第5步;  
           假设SQL  Server的安装路径为c:\mssql7,数据文件路径为d:\mssql7,  
           则启动SQL  Server服务的命令为:  
           c:\mssql\binn\sqlservr.exe  -c  -dd:\mssql7\data\master.mdf    
                       -ed:\mssql7\log\errorlog  -ld:\mssql7\data\mastlog.ldf  
第5步:  导入数据库:  
           先把数据文件与日志文件拷入d:\mssql7\data下,  
           假设SQL  Server的安装路径为c:\mssql7,数据文件为d:\mssql7\data\test_data.mdf,  
           日志文件为d:\mssql7\data\test_log.ldf,数据库名为test,则数据库导入的命令为:  
           sp_attach_db  'test','d:\mssql7\data\test_data.mdf','d:\mssql7\data\test_log.ldf'  
           当然,如果要自动执行的话,把上面的语句写入文件(假设为c:\temp\attachdb.sql)中,  
           然后调用运行命令:  
           c:\mssql\binn\osql.exe  -S服务器名  -Usa  -P  -dMaster  -ic:\temp\attachdb.sql  
最后,当然您还可以加入一些自己的应用程序的安装,这样的话,您就可以发布您那完整的数据库应用  
           程序了,所有安装,包括数据库全部自动进行,不需要用户的干预。  
           如果不能正确安装,查看一下Windows目录下的sqlstp.log文件即可查出原因,对症下药就行了。  
             
   
 
以下为文件sql70ins.iss的内容:  
 
[InstallShield  Silent]  
Version=v5.00.000  
File=Response  File  
[DlgOrder]  
Dlg0=SetupMethod-0  
Count=11  
Dlg1=SdWelcome-0  
Dlg2=SdLicense-0  
Dlg3=SdRegisterUser-0  
Dlg4=CDKEYDialog-0  
Dlg5=SetupTypeSQL-0  
Dlg6=DlgCpSortUnicode-0  
Dlg7=DlgServerNetwork-0  
Dlg8=DlgServices-0  
Dlg9=SdStartCopy-0  
Dlg10=SdFinish-0  
[SetupMethod-0]  
Component-type=string  
Component-count=1  
Component-0=Local  
Result=1  
[SdWelcome-0]  
Result=1  
[SdLicense-0]  
Result=1  
[SdRegisterUser-0]  
szName=MSEMPLOYEE  
szCompany=Microsoft  
Result=1  
[CDKEYDialog-0]  
svCDKey=47324-777-7777777-22042  
Result=1  
[SetupTypeSQL-0]  
;Sql  Server程序的安装路径  
szDir=C:\MSSQL7  
Result=301  
;Sql  Server数据文件的路径  
szDataDir=C:\MSSQL7  
[DlgCpSortUnicode-0]  
;如果是简体中文字符集SortId设为199,是ISO/1252字符集SortId设为52  
;如果是简体中文字符集LCID设为2052,是ISO/1252字符集LCID设为1033  
SortId=52  
LCID=1033  
CompStyle=196609  
Result=1  
[DlgServerNetwork-0]  
NetworkLibs=4095  
TCPPort=1433  
TCPPrxy=Default  
NMPPipeName=\\.\pipe\sql\query  
Result=1  
[DlgServices-0]  
Local-Domain=3855  
AutoStart=61455  
Result=1  
[SdStartCopy-0]  
Result=1  
[License]  
LicenseMode=PERSERVER  
LicenseLimit=5  
[SdFinish-0]  
Result=1  
bOpt1=0  
bOpt2=0  

解决方案 »

  1.   

    不用自己写这么麻烦,照下面的步骤去做
    ,会自动生成setup.iss这个无人值守安装文件运行SQL SERVER安装程序--安装 sql server 2000组件--安装数据库服务器--连续两次<下一步>--现在到了"安装选择"这一步,选择第三项"高级选项"--在<下一步>,在"高级选项"中选择第一项"记录无人值守.iss文件"剩下的步骤按照正常安装SQL SERVER就步骤去做就可以了.最后点击完成.然后到 c:\winnt (win9x/me是c:\windows\)目录下,将:setup.iss文件复制出来,比如复制到c:\setup.iss,这一步很重要,一定要将setup.iss复制出来,否则,一运行sql server安装程序,你的setup.iss文件就会被重写.这个setup.iss就是你的无人值守安装文件.你可以将它保存起来.
      

  2.   

    使用方法:
    在运行对话框执行:
    x:\x86\setup\setupsql.exe -s -m -SMS -f1 "c:\setup.iss"
    x:是指你的sql server安装光盘驱动器号注意,这个安装过程不会有任何提示和窗口显示
    你可以打开任务管理器,里面有个sqlstp的进程,这个就是sql server无人值守安装的进程,这个进程结束后,整个sql server的安装工作也就结束了.你创建一个setup.bat的批处理文件,内容为:
    @echo off
    rem  Performs SQL Server Full Server Unattended Install operationrem  Before running this batch file, you must edit the corresponding 
    rem unattended install file (sqlins.iss), and enter your 
    rem Product Key (CD-Key) from your CD.
    clsecho *
    echo     Unattended install for SQL Server is starting.
    echo *
    echo *
    echo     Waiting for SQL Server Setup to finish...
    @echo on
    start /wait x:\x86\setup\setupsql.exe -s -m -SMS -f1 "setup.iss"
    @echo off执行这个批处理来安装的话,就会有一个命令提示符的窗口显示,一直到安装过程结束`
      

  3.   

    我的setup.iss内容[InstallShield Silent]
    Version=v5.00.000
    File=Response File
    [File Transfer]
    OverwriteReadOnly=NoToAll
    [DlgOrder]
    Dlg0=SdWelcome-0
    Count=16
    Dlg1=DlgMachine-0
    Dlg2=DlgInstallMode-0
    Dlg3=DlgAdvanced-0
    Dlg4=SdRegisterUser-0
    Dlg5=SdLicense-0
    Dlg6=DlgClientServer-0
    Dlg7=DlgInstanceName-0
    Dlg8=SetupTypeSQL-0
    Dlg9=SQLComponentMult-0
    Dlg10=DlgServices-0
    Dlg11=DlgSQLSecurity-0
    Dlg12=DlgCollation-0
    Dlg13=DlgServerNetwork-0
    Dlg14=SdStartCopy-0
    Dlg15=SdFinish-0
    [SdWelcome-0]
    Result=1
    [DlgMachine-0]
    Type=1
    Result=1
    [DlgInstallMode-0]
    Type=32
    Result=1
    [DlgAdvanced-0]
    AdvType=4
    Result=1
    [SdRegisterUser-0]
    szName=zj
    Result=1
    [SdLicense-0]
    Result=1
    [DlgClientServer-0]
    Type=2
    Result=1
    [DlgInstanceName-0]
    InstanceName=MSSQLSERVER
    Result=1
    [SetupTypeSQL-0]
    szDir=d:\Program Files\Microsoft SQL Server
    Result=303
    szDataDir=d:\Program Files\Microsoft SQL Server
    [SQLComponentMult-0]
    SQLProg\SQLServr\SCMDev-type=string
    SQLProg\SQLServr\SCMDev-count=3
    SQLProg\SQLServr\SCMDev-0=SQLProg\SQLServr\SCMDev\SCMh
    SQLProg\SQLServr\SCMDev-1=SQLProg\SQLServr\SCMDev\SCMX86Lb
    SQLProg\SQLServr\SCMDev-2=SQLProg\SQLServr\SCMDev\SCMALb
    SQLProg\SQLServr-type=string
    SQLProg\SQLServr-count=6
    SQLProg\SQLServr-0=SQLProg\SQLServr\Help
    SQLProg\SQLServr-1=SQLProg\SQLServr\SCMDev
    SQLProg\SQLServr-2=SQLProg\SQLServr\Rs1033
    SQLProg\SQLServr-3=SQLProg\SQLServr\RsIntl
    SQLProg\SQLServr-4=SQLProg\SQLServr\ActiveX
    SQLProg\SQLServr-5=SQLProg\SQLServr\System
    SQLProg\ReplSupp-type=string
    SQLProg\ReplSupp-count=4
    SQLProg\ReplSupp-0=SQLProg\ReplSupp\ReplDat
    SQLProg\ReplSupp-1=SQLProg\ReplSupp\RepComm
    SQLProg\ReplSupp-2=SQLProg\ReplSupp\RepNoDk
    SQLProg\ReplSupp-3=SQLProg\ReplSupp\ActiveX
    SQLProg\SvrExt-type=string
    SQLProg\SvrExt-count=3
    SQLProg\SvrExt-0=SQLProg\SvrExt\Help
    SQLProg\SvrExt-1=SQLProg\SvrExt\SvrExtRs
    SQLProg\SvrExt-2=SQLProg\SvrExt\ResIntl
    SQLProg\MSSearch-type=string
    SQLProg\MSSearch-count=2
    SQLProg\MSSearch-0=SQLProg\MSSearch\Help
    SQLProg\MSSearch-1=SQLProg\MSSearch\ActiveX
    SQLProg\Symbols-type=string
    SQLProg\Symbols-count=2
    SQLProg\Symbols-0=SQLProg\Symbols\EXE
    SQLProg\Symbols-1=SQLProg\Symbols\DLL
    SQLProg\Perfmon-type=string
    SQLProg\Perfmon-count=1
    SQLProg\Perfmon-0=SQLProg\Perfmon\System
    SQLProg-type=string
    SQLProg-count=14
    SQLProg-0=SQLProg\SQLServr
    SQLProg-1=SQLProg\ReplSupp
    SQLProg-2=SQLProg\Install
    SQLProg-3=SQLProg\System
    SQLProg-4=SQLProg\SvrExt
    SQLProg-5=SQLProg\Dat
    SQLProg-6=SQLProg\DatSmpl
    SQLProg-7=SQLProg\BaseSys
    SQLProg-8=SQLProg\BaseBinn
    SQLProg-9=SQLProg\MSSearch
    SQLProg-10=SQLProg\BaseInst
    SQLProg-11=SQLProg\Symbols
    SQLProg-12=SQLProg\Perfmon
    SQLProg-13=SQLProg\Root
    MgtTool\SEM\ActiveX-type=string
    MgtTool\SEM\ActiveX-count=2
    MgtTool\SEM\ActiveX-0=MgtTool\SEM\ActiveX\Res1033
    MgtTool\SEM\ActiveX-1=MgtTool\SEM\ActiveX\ResIntl
    MgtTool\SEM\OLEDB-type=string
    MgtTool\SEM\OLEDB-count=2
    MgtTool\SEM\OLEDB-0=MgtTool\SEM\OLEDB\Res1033
    MgtTool\SEM\OLEDB-1=MgtTool\SEM\OLEDB\ResIntl
    MgtTool\SEM-type=string
    MgtTool\SEM-count=12
    MgtTool\SEM-0=MgtTool\SEM\HTML
    MgtTool\SEM-1=MgtTool\SEM\MSD98
    MgtTool\SEM-2=MgtTool\SEM\MSD98SYS
    MgtTool\SEM-3=MgtTool\SEM\MSD98Res
    MgtTool\SEM-4=MgtTool\SEM\MSD98Hlp
    MgtTool\SEM-5=MgtTool\SEM\Help
    MgtTool\SEM-6=MgtTool\SEM\Res1033
    MgtTool\SEM-7=MgtTool\SEM\ResIntl
    MgtTool\SEM-8=MgtTool\SEM\MSD98RsI
    MgtTool\SEM-9=MgtTool\SEM\ActiveX
    MgtTool\SEM-10=MgtTool\SEM\Scripts
    MgtTool\SEM-11=MgtTool\SEM\OLEDB
    MgtTool\Profiler-type=string
    MgtTool\Profiler-count=3
    MgtTool\Profiler-0=MgtTool\Profiler\Help
    MgtTool\Profiler-1=MgtTool\Profiler\Res1033
    MgtTool\Profiler-2=MgtTool\Profiler\ResIntl
    MgtTool\Qryanlz-type=string
    MgtTool\Qryanlz-count=3
    MgtTool\Qryanlz-0=MgtTool\Qryanlz\Help
    MgtTool\Qryanlz-1=MgtTool\Qryanlz\Res1033
    MgtTool\Qryanlz-2=MgtTool\Qryanlz\ResIntl
    MgtTool\Wzcnflct-type=string
    MgtTool\Wzcnflct-count=4
    MgtTool\Wzcnflct-0=MgtTool\Wzcnflct\WzcnHlp
    MgtTool\Wzcnflct-1=MgtTool\Wzcnflct\Wzcn1033
    MgtTool\Wzcnflct-2=MgtTool\Wzcnflct\WzcnOthr
    MgtTool\Wzcnflct-3=MgtTool\Wzcnflct\WzcnCmn
    MgtTool-type=string
    MgtTool-count=7
    MgtTool-0=MgtTool\SEM
    MgtTool-1=MgtTool\Profiler
    MgtTool-2=MgtTool\Qryanlz
    MgtTool-3=MgtTool\DTCCLi
    MgtTool-4=MgtTool\Wzcnflct
    MgtTool-5=MgtTool\UtilSys
    MgtTool-6=MgtTool\UtilBinn
    Connect-type=string
    Connect-count=1
    Connect-0=Connect\ConnSys
    Books\Bookso-type=string
    Books\Bookso-count=1
    Books\Bookso-0=Books\Bookso\Utils
    Books-type=string
    Books-count=1
    Books-0=Books\Bookso
    DevTools\VDI-type=string
    DevTools\VDI-count=2
    DevTools\VDI-0=DevTools\VDI\Inc
    DevTools\VDI-1=DevTools\VDI\Samples
    DevTools\Dbg Int-type=string
    DevTools\Dbg Int-count=2
    DevTools\Dbg Int-0=DevTools\Dbg Int\Dbg Int Common
    DevTools\Dbg Int-1=DevTools\Dbg Int\EXE
    DevTools-type=string
    DevTools-count=2
    DevTools-0=DevTools\VDI
    DevTools-1=DevTools\Dbg Int
    CoreRepl-type=string
    CoreRepl-count=2
    CoreRepl-0=CoreRepl\Res1033
    CoreRepl-1=CoreRepl\ResIntl
    Core-type=string
    Core-count=2
    Core-0=Core\Res1033
    Core-1=Core\ResOther
    Repostry-type=string
    Repostry-count=3
    Repostry-0=Repostry\RepstSys
    Repostry-1=Repostry\Res1033
    Repostry-2=Repostry\ResIntl
    CoreMisc\ActiveX-type=string
    CoreMisc\ActiveX-count=2
    CoreMisc\ActiveX-0=CoreMisc\ActiveX\Res1033
    CoreMisc\ActiveX-1=CoreMisc\ActiveX\ResIntl
    CoreMisc-type=string
    CoreMisc-count=2
    CoreMisc-0=CoreMisc\ActiveX
    CoreMisc-1=CoreMisc\Res1033
    Monarch-type=string
    Monarch-count=2
    Monarch-0=Monarch\Monr1033
    Monarch-1=Monarch\MonrIntl
    CoreCOM-type=string
    CoreCOM-count=2
    CoreCOM-0=CoreCOM\Res1033
    CoreCOM-1=CoreCOM\ResIntl
    CoreTool-type=string
    CoreTool-count=2
    CoreTool-0=CoreTool\Res1033
    CoreTool-1=CoreTool\ResOther
    SFExt\ActiveX-type=string
    SFExt\ActiveX-count=2
    SFExt\ActiveX-0=SFExt\ActiveX\Res1033
    SFExt\ActiveX-1=SFExt\ActiveX\ResIntl
    SFExt-type=string
    SFExt-count=3
    SFExt-0=SFExt\ActiveX
    SFExt-1=SFExt\Res1033
    SFExt-2=SFExt\ResIntl
    Trace-type=string
    Trace-count=2
    Trace-0=Trace\Res1033
    Trace-1=Trace\ResOther
    MC-type=string
    MC-count=3
    MC-0=MC\MC1033
    MC-1=MC\MCIntl
    MC-2=MC\Help
    SQLMgr-type=string
    SQLMgr-count=2
    SQLMgr-0=SQLMgr\Res1033
    SQLMgr-1=SQLMgr\ResIntl
    SvrTool-type=string
    SvrTool-count=2
    SvrTool-0=SvrTool\Res1033
    SvrTool-1=SvrTool\ResIntl
    DTSUI-type=string
    DTSUI-count=2
    DTSUI-0=DTSUI\Res1033
    DTSUI-1=DTSUI\ResIntl
    MSOlap-type=string
    MSOlap-count=2
    MSOlap-0=MSOlap\Res1033
    MSOlap-1=MSOlap\ResIntl
    ATL-type=string
    ATL-count=2
    ATL-0=ATL\winnt
    ATL-1=ATL\win9x
    SQLAdHlp-type=string
    SQLAdHlp-count=2
    SQLAdHlp-0=SQLAdHlp\Res1033
    SQLAdHlp-1=SQLAdHlp\ResOther
    Component-type=string
    Component-count=28
    Component-0=SQLProg
    Component-1=MgtTool
    Component-2=Connect
    Component-3=Books
    Component-4=DevTools
    Component-5=CoreRepl
    Component-6=Core
    Component-7=Repostry
    Component-8=CoreMisc
    Component-9=Monarch
    Component-10=Jet
    Component-11=CoreInst
    Component-12=CoreCOM
    Component-13=CoreTool
    Component-14=DBLibCli
    Component-15=SFExt
    Component-16=Trace
    Component-17=MiscCore
    Component-18=MC
    Component-19=SQLMgr
    Component-20=SvrTool
    Component-21=DTSUI
    Component-22=MSOlap
    Component-23=ATL
    Component-24=MFC42U
    Component-25=VC
    Component-26=VB
    Component-27=SQLAdHlp
    Result=1
    [DlgServices-0]
    Local-Domain=3855
    AutoStart=15
    Result=1
    [DlgSQLSecurity-0]
    LoginMode=2
    szPwd=063e24c9f2ab1a
    Result=1
    [DlgCollation-0]
    collation_name=Chinese_PRC_CI_AS
    Result=1
    [DlgServerNetwork-0]
    NetworkLibs=255
    TCPPort=1433
    TCPPrxy=Default
    NMPPipeName=\\.\pipe\sql\query
    Result=1
    [SdStartCopy-0]
    Result=1
    [License]
    LicenseMode=PERDEVICE
    LicenseLimit=50
    [SdFinish-0]
    Result=1
    bOpt1=0
    bOpt2=0