SQL Compact 选择前1行

13

在将一个应用从SQL 2005迁移到SQL Server Compact Edition时,我发现需要移植这个命令:

SELECT TOP 1 Id FROM tblJob WHERE Holder_Id IS NULL

但是SQL Server Compact Edition不支持TOP关键字。我该如何移植这个命令?

5个回答

30

随着@bernhardrusch提供的链接 - Top() 现在在v3.5中可用 :o) - Andrew

2
这与您的问题略有不同。SQL Server Compact Edition在处理SQL查询时实际上表现不佳。通过直接打开表格,可以获得更好的性能。在.NET中,您可以通过将命令对象的CommandText属性设置为表名,并将CommandType属性设置为CommandType.TableDirect来实现这一点。
如果您想要过滤结果,则需要在列上拥有一个索引。通过设置IndexName属性并使用SetRange设置过滤器来指定要使用的索引。然后可以读取所需记录的任意数量。

1

0

看起来无法在紧凑模式下完成。您必须阅读所有作业,或创建一个SqlReader,并只读取第一个。


0

找到了原因。管理工具携带并使用它自己的SQL Server Compact版本。更多信息请参见http://en.wikipedia.org/wiki/SQL_Server_Compact

SQL Server Management Studio 2005可以读取和修改CE 3.0和3.1数据库文件(使用最新服务包),但需要从“Katmai”2008 CTP发布(或更高版本)的SQL Server Management Studio 2008才能读取3.5版本的文件。

SQL Server Management Studio 2008和Microsoft Visual Studio Express 2008 SP1的RTM可以创建、修改和查询CE 3.5 SP1数据库文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接