开发机用 LocalDB 代替 SQL Server-使用与连接字符串

作者:vkvi 来源:ITPOW(原创) 日期:2017-4-6

以前开发 Windows 架构的应用系统,一般要在开发机上安装一个 SQL Server。

但是从 2012 版本开始,就多了一个 LocalDB:

  • LocalDB 比 Express 版要轻量化。微软是这么描述的:包括所有可编程性功能的轻型版本 Express Edition,但在用户模式下运行。
  • LocalDB 比 Compact 版要高级些:Compact 版很小,是进程内的 DLL,功能也简单;而 LocalDB 是独立进程,像存储过程这些高级内容也一个不落。

LocalDB

Visual Studio 中如何使用呢?

Visual Studio 中有个“SQL Server 对象资源管理器”。

SQL Server 对象资源管理器

这里右键就可以连接。连接后可以创建数据库,或者我们之前就有数据库,可以直接附加过来。

这里面的表设计还是视图界面,而创建登录、用户这些不常用的就得写 SQL 语句了,要执行 SQL 语句,则右键,选择“执行”,或者 Ctrl + Shift + E(如果是表设计,则点击左上角的“更新”)。

命令提示符

我们可以在命令提示符中用 SqlLocalDb 来执行相关数据库命令。

比如我们要启动,可用如下命令:

SQLLocalDB start

比如我们要执行要查看实例 MSSQLLocalDB 的信息,可用如下命令:

SQLLocalDB info MSSQLLocalDB

实例管道名称

注意最下面有一个实例管道名称,这个后面我们会用。

连接字符串

通常可以像连接 SQL Server 一样连接,但是要注意,要写实例名称:

Data Source=(localdb)\MSSQLLocalDB; Initial Catalog=cftea; Integrated Security=SSPI; AttachDbFilename=D:\SQLData\cftea.mdf;
Data Source=(localdb)\MSSQLLocalDB; Initial Catalog=cftea; Integrated Security=SSPI;

Server=np:\\.\pipe\LOCALDB#C79106A6\tsql\query; Initial Catalog=cftea; Integrated Security=SSPI; AttachDbFilename=D:\SQLData\cftea.mdf;
Server=np:\\.\pipe\LOCALDB#C79106A6\tsql\query; Initial Catalog=cftea; Integrated Security=SSPI;

可以发现有两种连接方式,第一种是用 Data Source(实际上也可用 Server),第二种是用 Server(后面跟实例管道名称)。如果是 Visual Studio 中直接运行程序,用第一种就可以;但如果是在 IIS 中运行,就得用第二种(因为 LocalDB 只能本地连接,如果是远程,则需要使用管道)。

注意:如果实例管道名称不对,会报“系统找不到指定文件”的错误;如果计算机重启了,这个管道名称可能会变。

而 AttachDbFilename 有些情况下也需要:比如你已经有了一个数据库,拿了过来,但还没有附加到当前实例中,就使用 AttachDbFilename 来附加,一旦附加完成,这个就可以省略了。


相关文章