安装VS2013后与数据库的连接问题

时间:2022-09-18 21:50:00

安装VB2013后,会自动安装一个 SQL Server 2012 Express LocalDB,而2013之前的版本安装的是SQL Server Express,这两者有以下差别:

http://www.cnblogs.com/shanyou/archive/2012/09/05/2672590.html

软最新推出的 SQL Server 2012 Express LocalDB 是一种 SQL Server Express 的运行模式,特别适合用在开发环境使用,也内置在 Visual Studio 2012 之中。

关于 SQL Server 2012 Express LocalDB 的运作方式

在安装 LocalDB 时会复制一个 SQL Server Express 实例所需的最少文件,基本上 LocalDB 几乎等同于完整的 SQL Server Express 数据库引擎,且 LocalDB 方式启动的 SQL Server Database Engine 实例与 SQL Server Express 具有相同的限制 (因为跟 SQL Server Express 共享相同的文件),但 LocalDB 由于简化了管理,所以比 SQL Server Express 还多了一些限制,不过这些限制通常不影响开发。相对旧版的 SQL Server 2008 Express 来说,两者有些差异性,比较如下:在安装好 SQL Server 2012 Express LocalDB 之后,默认会有个实例名为 v11.0,该实例的相关文件所在目录通常位于以下目录 ( 请将 <user> 替换成你的登陆账号 )

在建立新的 LocalDB 实例之前,必须先了解 SqlLocalDB.exe 工具程序的路径,请参考以下路径:

C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SqlLocalDB.exe

以下是建立 LocalDB 实例的指令,其中 “LocalDbTest” 是你可以自行命名的实例名称:

SqlLocalDB.exe create LocalDbTest

接着我们通过命令列出所有 LocalDB 已经建立的所有实例,并查看特定实例的相关信息:

SqlLocalDB.exe info 
SqlLocalDB.exe info Projects

进入该目录就会看到如同 SQL Server 完整版一样有这些系统数据库文件、错误纪录、纪录追踪、加密密钥、…等等,如下图示:

 

SQL Server 2012 Express LocalDB 与其他 SQL Server 版本的比较

在 SQL Server 2012 问世之前,SQL Server 依据不同的运行环境各有推出不同的版本,在运行上也有不同的限制,例如:

  • SQL Server Enterprise ( 企业版,适合大量数据或高可用性环境 )
  • SQL Server Standard ( 标准版,适合用在一般数据库处理环境 )
  • SQL Server Express ( 轻量版,适合用在单机或小量数据库的环境 )
  • SQL Server Compact ( 精简版,又称 SQL CE,适用于行动化或嵌入式系统环境 )

而 SQL Server 2012 Express LocalDB 又是甚么样的一个定位呢?从数据库系统复杂度加以重新排序过如下:

  • SQL Server Enterprise > Standard > Express > LocalDB > Compact

由于 SQL Server 2012 Express LocalDB 跟前版的 SQL Server 2008 R2 Express 很像,其中的限制有:

  • LocalDB 的实例排序规则默认为 SQL_Latin1_General_CP1_CI_AS,无法变更。

但支持数据库层级数据行层级表达式层级定序。

也就是说,你只要在建立数据库时指定其排序规则即可,或是挂载其他数据库系统移过来的数据库文件,或还原自其他数据库的备份文件也都不会有问题。

自主数据库遵循自主数据库定序所定义的元数据和 tempdb 定序规则。


 

VS中连接字符串如下:

Data Source=(localdb)\Projects;Initial Catalog=test;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False

其中(localdb)\Projects就是servername,Catalog是数据库名称。