2010-01-13 47 views
2

首先,我是新来的,所以,我会说你好,并感谢多年的帮助。SQL Server 2008 + C#+ Inno Installer

我有以下问题:

我需要创建一个安装使用SQL Server 2008中我使用InnoSetup安装程序,因为我认为这可能是最好的选择,一个C#应用程序,但我不知道如何安装SQL Server 2008以及应安装在本地计算机上的多个数据库(.mdf,.ldf或.bak)。

所以我的任务是,让C#应用程序和SQL Server 2008引擎+工具在我的电脑中以无人照管的方式分发给我的客户端(因为他们使用数据库的事实应该是透明的最终用户)。

我确定它是可能的,实际上我安装了C#应用程序和SQL Server引擎(已下载SQLEXP32_x86_ENY.exe),但数据库呢?这是我的问题,以及SQL SERVER的正确配置:因为您可能知道,它并不是微不足道的使它正常工作(访问控制问题,管理员权限等)。

比如为了安装SQL Server我这样做是在控制台模式下,微软祝福,这样做的:

SQLEXP32_x86_ENY.exe /ACTION=install /FEATURES=SQL,Tools 
/INSTANCENAME=SQLExpress 
/SECURITYMODE=SQL /SAPWD=**** 
/SQLSYSADMINACCOUNTS="Builtin\Administrators" 
\ENABLERANU /SQLSVCACCOUNT="" 
/SQLSVCPASSWORD="" 

我应该写在/ SQLSVCACCOUNT/SQLSVCPASSWORD,例如?

我该如何导入我提供的现有数据库?直到最近人们习惯使用SQLDMO CMO对象,但我读到的那个不再被支持。

你是怎么做的?这是一个问题,至少圆顶提示可能是有用的。

我的客户需要一个数据库在本地,但在一开始,他们需要先创建一些数据库,以及一些初始数据。

在此先感谢!

回答

1

首先,您知道您下载的文件SQLEXP32_x86_ENY.exe是SQL Server Express版 - 对吧?即使用于商业目的,它也是免费的,但它有一些限制(只使用1个CPU,最大数据库大小限制为4 GB以及更多)。

其次,为您SQLSVCACCOUNT - 对于生产环境最好的做法是有一个特殊的系统帐户下运行SQL Server - 有点像“人造”用户名为无论你怎么称呼它SQLServerUser或。此帐户有一个密码,这些是您为SQLSVCACCOUNTSQLSVCPASSWORD提供的两件事情。

对于开发环境,这些设置通常设置为类似SYSTEM\NETWORK SERVICENT AUTHORITY\LOCAL SYSTEM类似的东西(用于帐户)。

至于现有数据库附加到新的SQL Server实例 - 你有几种选择:

  • ,如果你能做到这一点互动,下载并安装SQL Server Management Studio中的Express版本,并附上你的数据库中该工具

  • 如果您需要在安装过程中执行此操作,则可以使用sqlcmd - 命令行SQL工具 - 直接从命令行执行类似ATTACH DATABASE ......的SQL语句。 sqlcmd与SQL Server(包括Express版本)一起安装

  • 如果您需要完全控制,则可以使用SMO - SQL Server管理对象 - 随SQL Server 2008一起安装以自动执行您的任务(而不是传统的SQL-DMO,因此不再支持)

+0

应该/ InnoSetup安装程序可以自动且透明地创建仿真SQLServerUser用户和相关密码? – ChrisW 2010-01-13 11:37:08

+0

是的,它绝对可以 - 有很多API可以在Windows中创建新用户并为其设置属性 – 2010-01-13 12:53:24

0

最后,我将与SQL Server Compact 3.5工作......这GIEVES我足够的资源为我的建议,并且是有点更容易部署。 以及,我会确保我的用户不会以不好的方式使用数据库... 谢谢!!!!! 无论如何,我会不断尝试正确部署一个SQL SERVER 2008,但Vista是一个痛苦的屁股!hahaah

Thanks marc_s !!!!!!!!!!