微软最新推出的 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 2008 Express
  • 安装 SQL Server 2008 Express 的过程时间花得比较久
  • 通过 SQL Server 2008 Express 安装程序一次只能安装一个 SQL 实例 (Instance),若要安装更多实例则必须在运行一次 SQL Server 2008 Express 安装程序 
    注:默认实例名称为 SQLEXPRESS
  • 需通过 SQL Server 配置管理器 或 Windows 服务管理器 启动该实例
  • SQL Server 2012 Express LocalDB
  • 安装 SQL Server 2012 Express LocalDB 的过程非常快 (安装时间非常短)
  • 安装 SQL Server 2012 Express LocalDB 完后,默认会有个自动实例为 v11.0,但之后若要建立其他实例不再需要运行安装程序,只需通过 SqlLocalDB.exe 工具程序即可任意建立新的实例,建立一个实例的时间不超过 3 秒!
  • 可通过特殊的连接字符串自动启动该实例,或可通过 SqlLocalDB.exe 工具程序启动,应用程序不需复杂或耗时的组件工作即可开始使用数据库!
  • 在同一台主机里,每个用户都可以建立自己的 LocalDB 实例,每个实例是以不同使用者身分运行不同进程,所以不同使用者可有同名的实例

SQL Server 2012 Express LocalDB 区分两种实例类型,分别为:

  • LocalDB 自动实例 ( Automatic Instances )

LocalDB 自动实例是公用的。

  • 安装完 LocalDB 后的 v11.0 就是自动实例,虽然感觉只有一个实例,但是由于在同一台主机里,每个用户都可以建立自己的 LocalDB 实例,所有使用者虽然都有同名的 v11.0 的实例,但彼此都是独立分开的进程(Process)。这些实例会自动为使用者建立及管理,并且可供任何应用程序使用。
  • 用户计算机上安装的每一个 LocalDB 版本各存在一个 LocalDB 自动实例。未来如果还有下一版 SQL Server 2012 Express LocalDB 出现,就会再有新的实例名称可用,默认自动实例名称是一个 v 字符后面接着 xx.x 格式的 LocalDB 发行版号码。 例如,v11.0 代表 SQL Server 2012。
  • LocalDB 具名实例 ( Named Instances )
  • LocalDB 具名实例是私用的。
  • 这些实例是由该负责建立及管理该实例的使用者或特定单一应用程序所拥有。
  • 不同使用者默认无法存取自定义的 LocalDB 具名实例,除非你手动建立具名实例的分享功能,开启分享功能后就可以让其他使用者存取该具名实例的数据库。

了解 SQL Server 2012 Express LocalDB 实例的数据库文件所在路径

在安装好 SQL Server 2012 Express LocalDB 之后,默认会有个实例名为 v11.0,该实例的相关文件所在目录通常位于以下目录 ( 请将 <user> 替换成你的登陆账号 )

C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances

或用 %LOCALAPPDATA% 环境变量进入该目录比较方便:

%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances

以下是显示该目录的图标,这里会列出所有 LocalDB 的实例:

在此目录 ( v11.0 ) 下所看到的文件都是实例的相关文件,系统数据库文件、错误纪录、纪录追踪、加密密钥、…等等,不过若你在 LocalDB 实例中建立用户数据库时,必须要明确指定其数据文件与记录文件的路径,否则默认所有建立的数据库都会位于 %USERPROFILE% 目录下 ( C:\Users\<username> )

建立 SQL Server 2012 Express LocalDB 具名实例

你可以想象一下,一个 SQL 数据库实例就如同一台完整的 SQL Server 数据库服务器,在一个实例里面会有自己的系统数据库 (master, msdb, model, temp),就跟我们一般在使用 SQL Server 没有什么两样,当你建立额外的 LocalDB 实例的话,这些系统数据库就会跟另一个具名实例完全独立开来,彼此完全互不影响。

就开发的角度来说,你甚至可以在开发测试的环境里建立一套跟客户端正式主机完全相同的数据库环境,光是这一点就与以往的 SQL Server Express 区别巨大,也是新版 LocalDB 真正厉害的地方!

在建立新的 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

接着我们在看看文章之前介绍过的实体文件路径,你将会发现多了一个目录,我们用 %LOCALAPPDATA% 环境变量进入该目录看看:

%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances

进入该目录就会看到如同 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 定序规则。

  • LocalDB 不得为合并式复写订阅者。
  • LocalDB 不支援 FILESTREAM。
  • LocalDB 针对 Service Broker 只允许本机队列。

相关链接

SQL Server 2012 Express LocalDB的更多相关文章

  1. 在Vs2012 中使用SQL Server 2012 Express LocalDB打开Sqlserver2012数据库

    http://www.cnblogs.com/huangtailang/p/4221164.html 背景:个人电脑中使用的是VS2012,数据库为2008R2,最近需要打开一个SqlServer20 ...

  2. VS 2017 Web项目需要安装Sql Server 2012 Express LocalDB问题

    最近在做mvc5的练习 ,结果到了数据库连接这一阶段就出现了问题,开始我以为<add name="MovieDBContext" connectionString=" ...

  3. SQL Server 2012 Express LocalDB 的作用

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

  4. VS2013使用自带的数据库 Microsoft SQL Server 2012 Express LocalDB

    注:DeptLocalDB:自己取的数据库实例名称 DeptSharedLocalDB:自己取的实例共享名称np:\\.\pipe\LOCALDB#SH7C6ED5\tsql\query:命名管道名称 ...

  5. SQL SERVER 2012 从Enterprise Evaluation Edtion 升级到 Standard Edtion SP1

    案例背景:公司从意大利购买了一套中控系统,前期我也没有参与其中(包括安装.实施都是第三方),直到最近项目负责人告诉我:前期谈判以为是数据库的License费用包含在合同中,现在经过确认SQL Serv ...

  6. SQL Server 2012 连接到数据库引擎

    第 1 课:连接到数据库引擎 https://msdn.microsoft.com/zh-cn/library/ms345332(v=sql.110).aspx   本课将介绍主要的工具以及如何连接并 ...

  7. SQL Server 2012 无人值守安装(加入新实例)

    方法1,通过指定条个參数安装 setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=install /PID=<validpid> /FEA ...

  8. SQL Server 2012安装图解

    SQL Server 2012 Enterprise Edition安装图解... 第一部分:安装前的准备 1.疑问:一个PC上可以安装多个SQL Server数据库么 答案:可以的.每一个安装的时候 ...

  9. SQL Server 2012 无人值守安装

    方法1,通过指定条个參数安装   setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=install /PID=<validpid> /F ...

随机推荐

  1. 将VLC库封装为duilib的万能视频播放控件

    转载请说明出处,谢谢~~ 昨天封装好了基于webkit的浏览器控件,修复了duilib的浏览器功能的不足,而我的仿酷狗播放器项目中不光需要浏览器,同时也需要视频播放功能,也就是完成MV的功能.所以我打 ...

  2. hadoop的压缩解压缩,reduce端join,map端join

    hadoop的压缩解压缩 hadoop对于常见的几种压缩算法对于我们的mapreduce都是内置支持,不需要我们关心.经过map之后,数据会产生输出经过shuffle,这个时候的shuffle过程特别 ...

  3. Jquery类级别与对象级别插件开发

    jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...

  4. 无线 WIFI 的13个信道频率范围

    目前主流的无线WIFI网络设备不管是802.11b/g还是802.11b/g/n 一般都支持13个信道.它们的中心频率虽然不同,但是因为都占据一定的频率范围,所以会有一些相互重叠的情况.下面是13个信 ...

  5. 第二百五十二天 how can I 坚持

    明天就要去旅游了...还不知道去哪呢,只知道要滑雪,要泡温泉,还要去西柏坡..哈哈. 其他没什么了吧.只是昨晚刷的鞋还没干,不知道明天会不会干,明天还得早走会,九点之前就得到. 还不知道坐车坐多长时间 ...

  6. NLog 錯誤小記

    IISExpress使用NLog遇到寫入權限錯誤,特記錄下來: NLog配置文件中指定FileName時需要指定為當前目錄,如不指定會產生 拒絕訪問 錯誤, 估計為不指定當前目錄時會將文件寫入iise ...

  7. Spark计算工作流

    下图 中描述了 Spark 的输入.运行转换.输出.在运行转换中通过算子对 RDD进行转换.算子是 RDD 中定义的函数,可以对 RDD 中的数据进行转换和操作.‰ 输入:在 Spark 程序运行中, ...

  8. linux下编译lua

    curl -R -O http://www.lua.org/ftp/lua-5.2.3.tar.gz 编译代码时,遇到如下错误 /usr/lib/libreadline.so: undefined r ...

  9. CodeForces 689D Friends and Subsequences (RMQ+二分)

    Friends and Subsequences 题目链接: http://acm.hust.edu.cn/vjudge/contest/121333#problem/H Description Mi ...

  10. sublime text2 用ctags插件实现方法定位

    sublime text2 用ctags插件实现方法定位(转) 我们用sublime几乎都会首先安装这个插件,这个插件是管理插件的功能,先安装它,再安装其他插件就方便了. 点击sublime的菜单栏 ...