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步: 判断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
解决方案 »
- Sql server 的全文索引如何是否比 Lucene好
- 数据库查询问题
- @name 这种形式的参数代表什么意思,有什么用啊??
- 打完sp3补丁后,sqlserver服务管理器就不能启动了?
- 头痛
- LEFT ( character_expression , integer_expression ) 函数,如果第二个参数是0
- 请教各位数据合并的SQL语句(此合并非左右合并,是上下合并)
- 关于怎样建立表问题
- 一个很奇怪的问题?为什么
- 编写带参数的存储过程,查询指定教学楼,指定教室,指定时间段的教室使用情况,或者有课,或者有讲座、或者有活动、或者空闲。
- "%"与“*”的区别
- 主子表INT自增主键插入记录的存储过程,调了好几天了,郁闷~
msde在sql server的msde目录中
主要有两种方法,
简单方法是使用setup.exe,复杂方法是实用\msde\msm下的合并模块,可以将其无缝的集成到自己的msi安装程序里,不过很麻烦。第一种方法主要是设置setup.ini和setup.exe的命令行参数。
例如:1 [Options]
2 TARGETDIR="D:\Setup\msde\binn"
3 DATADIR="D:\Setup\msde\data"
4 INSTANCENAME="我的实例名称"
5 SECURITYMODE="SQL"
6 USEDEFAULTSAPWD注意:
4 安装命名实例可以避免和用户计算机上可能存在的sql server发生冲突
5 验证模式为混合模式,楼上兄弟就不用去改注册表了
6 sa密码为空使用:F:\MSDE\SETUP /i F:\MSDE\setup\sqlrunXX.msi
就可以删除其他15个 sqlrunXX.msi了