【问题标题】:Is batch query possible in SQL Server Compact Edition?SQL Server Compact Edition 中是否可以进行批量查询?
【发布时间】:2014-06-12 19:44:02
【问题描述】:

我正在开发一个带有远程 SQL Server 数据库的 Winforms 应用程序。由于我是新手,我不知道从远程数据库获取数据的速度非常慢。因此,我为此使用 Visual Studio 2010 对话框提出了Local Database Cache 的解决方案。但是 SQL Server CE 的问题是它似乎不支持批量查询。

我发现有些人说可以在查询之间使用GO进行批量查询,而有些人说在SQL Server CE中不可能;参考链接link1。我知道这个问题已被问过很多次,但答案不同。

如果可能的话,我该如何执行

select * 
from tabl1 
where a = (select b from table2)

如果不可能,那么还请提出join 以外的解决方案,因为我无法更改所有已构建的数据库功能。

还有其他可能的方法可以用来实现我的想法吗?我也在考虑在客户端使用 SQL Server,但我不知道如何手动实现数据同步。

【问题讨论】:

  • 在客户端使用 SQL Server(例如 Express)可能会容易得多,因为它提供了与完整的远程 SQL Server 相同的功能。 SQL Server CE 在很多方面都相当有限(并且即将退出 - 它不会真正进一步开发,被 SQL Server Express 取代)
  • 能否给我一个代码示例如何在这种情况下实现同步。
  • 不抱歉——这个话题太宽泛了,不能仅仅给出一个“代码示例”。这取决于您的表结构以及如何在本地修改数据。这是可以做到的——这需要一些工作。但是在本地使用 real SQL Server 的好处是拥有所有功能(存储过程、视图等)——所有这些功能都是 SQL Server Compact Edition 所没有的。 t 提供(或仅非常有限)
  • "GO" 不是 sql 语言的一部分。这是 Management Studio 工具的一项功能,而不是数据库本身的一项功能。

标签: c# .net sql-server winforms sql-server-ce


【解决方案1】:

SQL Server CE 供托管在客户端而非服务器上的本地数据库文件使用。

因此,它只能使用来自 T-SQL 的非常有限的命令集。

例如,您在请求中指出的嵌套选择将不起作用。

SQL Server Compact 旨在用作本地数据库选项,当与主服务器的连接出现问题或您希望将远程数据库中的临时存储在用户计算机上的信息用于应用程序时,可以使用该选项。

此链接描述了可用的命令和语法:http://msdn.microsoft.com/en-us/library/ms173372(v=sql.105).aspx

关于同步的主题,这似乎更符合您的要求,请参阅:(同步 SQL Server 和 SQL Server Compact)-http://msdn.microsoft.com/en-us/library/ee617382.aspx

我一直在使用它,因为此时我还没有在我的计算机上或我使用的任何网络上的 SQl Server 连接权限,它对于 70-461 的练习很有用考试(当然,以有限的方式)。

它不是一个通用的数据库选项。

这些链接应该可以帮助您满足您的需求。

坏消息是,如果您需要上述类型的命令,您可能无法在应用程序中使用它,除非您编写一个单独的引擎将这些命令解析为 SQL CE 支持的语法。

祝你好运,我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多