2014-04-27 68 views
0

我正在使用远程SQL Server数据库的Winforms应用程序。由于我是新手,我不知道从远程数据库获取数据的速度非常慢。所以我想出了一个使用Visual Studio 2010对话框的Local Database Cache解决方案。但SQL Server CE的问题在于它似乎不支持批量查询。在SQL Server Compact Edition中是否可以批量查询?

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

如果它可能然后我们如何我执行

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

如果这是不可能的,那么还请建议其他然后join,因为它不可能为我改变所有内置数据库功能的解决方案。

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

+2

在客户端上使用SQL Server(例如Express)可能会容易得多,因为它提供了与完整的远程SQL Server相同的功能。 SQL Server CE在许多方面相当有限(并且在出路上 - 它不会再真正被开发出来,被SQL Server Express取代) –

+0

您能否给我一个代码示例如何在此实现同步场景。 –

+0

没有对不起 - 这是一个太广泛的话题,只是给一个“代码示例”。它取决于你的表格结构以及数据如何在本地修改。它可以完成 - 这是一个工作。但是,在本地使用* real * SQL Server的好处是拥有所有的功能(存储过程,视图等) - 所有SQL Server ** Compact Edition **不提供(或者只有非常有限的) –

回答

0

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服务器连接权限在我的计算机上或任何我使用的网络上, 461考试(当然有限制)。

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

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

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

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

相关问题