在VS2008、2005可以创建mdf文件到project中mdf跟着exe文件同目录但是我很奇怪的:
1、这个数据库不出现在SQL server管理器中,但是在VS中双击mdf出现在在VS中的server explorer中
查询了linq的连接字符串
        connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\TestDB1.mdf;Integrated Security=True;User Instance=True"
2、关闭exe似乎这个数据库也卸载了。比如关闭,exe程序,或者VS,我就可以拷贝mdf文件,甚至删除。
(不知道SQL server中的mdf可不可以关闭管理器后删除)我觉得这样挺好的,把程序拷贝给别人,也不明显示的部署(当然别人的机器也要装Express),我觉得简单就好。但是这是针对SQL express的,不知道SQL server可以这样吗?
我记得VS如果不装Express,但是装了Server,还是不能在project 里新建mdf文件的,不信你试试

解决方案 »

  1.   

    Microsoft SQL Server 2005 速成版 (SQL Server Express) 支持一项新功能(即用户实例),只有在使用用于 SQL Server 的 .NET Framework 数据提供程序 (SqlClient) 时该功能才可用。用户实例是 SQL Server Express 数据库引擎的单独实例,该单独实例由父实例生成。不是其本地计算机的管理员的用户可以将用户实例附加和连接到 SQL Server Express 数据库。在每个用户一个实例的基础上,每个实例在单个用户的安全上下文中运行。http://msdn.microsoft.com/zh-cn/library/ms254504.aspx
      

  2.   

    与作为服务运行的其他 SQL Server 版本不同,SQL Server Express 实例不需要手动启动和停止。每次用户登录和连接到用户实例时,如果该用户实例尚未运行,则会启动该用户实例。用户实例数据库设置 AutoClose 选项,这样数据库就会在一段非活动期后自动关闭。已启动的 sqlservr.exe 进程会在实例的上一次连接关闭后的有限超时期限内继续运行,因此,如果在超时过期之前打开了另一连接,则不需要重新启动 sqlservr.exe 进程。如果在超时过期之前没有打开新连接,则用户实例将自动关闭。父实例的系统管理员可为用户实例设置超时期限的持续时间,方法为:使用 sp_configure 更改“用户实例超时”选项。默认值为 60 分钟。