none
Sql Ce、Sql Express、Sql Server、LocalDb,我用的是哪个? RRS feed

  • 问题

  • Sql Ce、Sql Express、Sql Server、LocalDb,分别是什么?

    我的 IDE 是 Visual Studio 2012,由于我对那四种东西都不熟悉,所以下面的描述可能不准确,举个例子来说。

    新建一个 C# 空项目,然后用 nuget 添加 EntityFramework,这版本是 5.0,以使用 DbContext。我注意到在我的 App.config 里面多了两句

    <section name="entityFramework" ...>

    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">

    后一句看似和数据库有关,有 LocalDb 字样。

    我用 Entity Framework Code First 生成数据库,为了指定连接字符串我在 App.config 里加上

    <add name="NerdDinners" connectionString="Data Source=|DataDirectory|\Mydb.sdf" providerName="System.Data.SqlServerCe.4.0"/>

    问题是,问题1:

    在这个项目中我的 Mydb.sdf 文件用的数据库是 LocalDb 还是 Sql Ce?

    附加问题:

    问题2:如何查看我的机器上现在安装了哪些数据库程序?

    2012年10月30日 5:53

全部回复

  • 看了一些文章之后,我现在知道,

    Sql Ce 是简化版的 Sql 产品,免费、体积小、进程内 dll、功能少、可用在 Windows Phone 上。
    Sql Express 是 Sql 服务器,免费、服务进程、体积大、安装麻烦、功能较多。
    LocalDB 是 Sql Express 面向开发者的 Sql 服务器,免费、用户进程、体积较大、安装较简单、功能较多。

    在命令行输入 SqlLocalDB,如果有这个命令说明安装了 LocalDB。

    仍然搞不清楚的是
    1. 上面我创建的 Mydb.sdf 文件是 LocalDb 还是 Sql Ce?
    2. 如何查看除去 LocalDb 外,我的机器上现在安装了哪些数据库程序?

    2012年10月30日 8:55
  • 各有定位。。SQL CE是准备给嵌入式设备用的。估计用的太少太少

    EXPRESS给桌面版用的,可多用户,大约默认是10个以内吧,估计比较多

    LocalDB是新的桌面版用的,单机,但可开多个程序连接使用,只支持WIN7,估计WIN8也支持



    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com

    2012年10月30日 9:42
  • 可以看一下这篇文章的介绍:

    localdb介绍


    给我写信: QQ我:点击这里给我发消息

    2012年10月30日 11:18

  • 如何查看除去 LocalDb 外,我的机器上现在安装了哪些数据库程序?

    你好,

    请点击 开始->运行->输入services.msc
    在服务里查看安装哪些数据库的服务。

    Thanks,
    Amy Peng


    Please remember to click "Mark as Answer" and "Vote as Helpful" on posts that help you. This can be beneficial to other community members reading the thread.

    2012年10月31日 6:39
    版主

  • 如何查看除去 LocalDb 外,我的机器上现在安装了哪些数据库程序?

    你好,

    请点击 开始->运行->输入services.msc
    在服务里查看安装哪些数据库的服务。

    运行 services.msc 我看到服务(本地)窗口,里面有 Sql 字样的我就看到一个,是 SQL Server VSS Writer,这说明我安装了什么?

    Sql Ce 是进程内 dll,LocalDB 是用户进程的子进程,这俩不会在服务里面列出来吧。

    2012年10月31日 8:37
  • 在 Program Files 里面有 Microsoft SQL Server 这个目录,但我觉得应该是 Express,因为我没有专门安装任何 SQL Server。在添加删除程序里面我看到一堆带 SQL 字样的程序,但是带 Express 的就有一个:Microsoft SQL Server 2012 Express LocalDB。

    当我输入 SqlLocalDB 回车时,显示

    Microsoft (R) SQL Server Express LocalDB 命令行工具
    版本 11.0.2100.60

    我觉得这说明我安装了 LocalDB。但是当我输入sqlcmd 回车时,显示

    Microsoft (R) SQL Server 命令行工具
    版本 11.0.2100.60 NT x64

    这难道说明我安装了“SQL Server”?

    2012年10月31日 8:58
  • 我觉得这说明我安装了 LocalDB。但是当我输入sqlcmd 回车时,显示

    Microsoft (R) SQL Server 命令行工具
    版本 11.0.2100.60 NT x64

    这难道说明我安装了“SQL Server”?

    你好,

    当我们安装Visual Studio 2012时,如果选择全部安装时,那就会自动地安装SQL Server Express.

    Thanks,
    Amy Peng


    Please remember to click "Mark as Answer" and "Vote as Helpful" on posts that help you. This can be beneficial to other community members reading the thread.

    2012年10月31日 9:06
    版主
  • 我上面给出的文章已经说了,SqlLocalDB 是没有使用windows服务的方式的,就是说不能从

    services.msc 看服务(本地)窗口看有没有安装SqlLocalDB 


    给我写信: QQ我:点击这里给我发消息

    2012年11月1日 11:15
  • 在 Visual Studio 2012 里面我打开“服务器资源管理器(Ctrl-Alt-S)”,在服务器资源管理器里面点“连接到数据库”。选择数据源时,我选择 Microsoft SQL Server,点继续;在添加连接时,我在“服务器名”里面输入 .\sqlexpress,点测试连接,弹出对话框:

    连接字符串中的数据源值指定了未安装的 SQL Server 实例。要解决此问题,您可以选择安装匹配的 SQL Server 实例,或者修改连接字符串中的数据源值。

    你好,

    当我们安装Visual Studio 2012时,如果选择全部安装时,那就会自动地安装SQL Server Express.

    这和我的实际情况不符和。

    2012年11月5日 5:18
  • 在 Visual Studio 2012 里面我打开“服务器资源管理器(Ctrl-Alt-S)”,在服务器资源管理器里面点“连接到数据库”。选择数据源时,我选择 Microsoft SQL Server,点继续;在添加连接时,我在“服务器名”里面输入 .\sqlexpress,点测试连接,弹出对话框:

    连接字符串中的数据源值指定了未安装的 SQL Server 实例。要解决此问题,您可以选择安装匹配的 SQL Server 实例,或者修改连接字符串中的数据源值。

    这个管理器真是莫名其妙,那么多编辑框和下拉列表框,最终是不是就是为了组成一个连接字符串?那干嘛不给个编辑框让输入连接字符串呢?点了一堆“连接”、“数据源”、“服务器名”这种乱七八糟的名词,最终告诉你连接字符串有问题。

    2012年11月5日 5:30
  • 傻瓜化嘛,微软的东西就是这样,你说你在服务器名里面输入.\sqlexpress

    如果你没有安装sqlexpress的话,或者你安装了sqlexpress但是你在安装sqlexpress的时候

    选择的是默认实例,这样你在服务器名里面输入.\sqlexpress是会报错的

    你确认一下是否安装了sqlexpress

    像amy Peng大侠所说

    请点击 开始->运行->输入services.msc
    在服务里查看安装哪些数据库的服务。

    如果你安装了sqlserver企业版,然后你又安装了sqlexpress,那么

    一般在服务的名字后面会有一个括号 MSSQLSERVER(sqlexpress

    标明你安装的数据库版本

    如果你不确定是默认实例还是命名实例,可以在SQL SERVER MANAGEMENT STUDIO

    里测试一下,输入服务器名的时候

    如果是默认实例是不需要反斜杠的

    输入ip地址,计算机名,域名均可

    例如:192.168.1.6 或者 joe  或者 lyhabc.gicp.net  或者(local)  或者 .如果是命名实例:

    例如:192.168.1.6\sqlexpress  或者.\sqlexpress  或者 joe\sqlexpress

    我不详细写了,LZ可以试一下


    给我写信: QQ我:点击这里给我发消息

    2012年11月5日 12:40