在将应用程序从 SQL 2005 移植到 SQL Server Compact Edition 时,我发现需要移植以下命令:
SELECT TOP 1 Id FROM tblJob WHERE Holder_Id IS NULL
但 SQL Server Compact Edition 不支持该TOP
关键字。如何移植此命令?
在将应用程序从 SQL 2005 移植到 SQL Server Compact Edition 时,我发现需要移植以下命令:
SELECT TOP 1 Id FROM tblJob WHERE Holder_Id IS NULL
但 SQL Server Compact Edition 不支持该TOP
关键字。如何移植此命令?
SELECT TOP(1) Id
FROM tblJob
WHERE Holder_Id IS NULL
据我所知需要括号。
参考:http ://technet.microsoft.com/en-us/library/bb686896.aspx
补充:同样,仅适用于 3.5 及以上版本
这与您的问题略有正交。
SQL Server Compact Edition 实际上不能很好地处理 SQL 查询。通过直接打开表格,您可以获得更好的性能。在 .NET 中,您可以通过将命令对象的CommandText
属性设置为表名并将CommandType
属性设置为CommandType.TableDirect
.
如果要过滤结果,则需要在要过滤的列上的表上建立索引。通过设置IndexName
属性来指定要使用的索引,并使用SetRange
来设置过滤器。
然后,您可以根据需要阅读尽可能多或尽可能少的记录。
我使用了 SqlCEDataAdapter 的 Fill 方法。你可以做:
DbDataAdapter.Fill (DataSet, Int32, Int32, String) 添加或刷新 DataSet 中指定范围内的行,以使用 DataSet 和 DataTable 名称匹配数据源中的行。由 .NET Compact Framework 提供支持。
http://msdn.microsoft.com/en-ie/library/system.data.common.dbdataadapter.fill(v=VS.80).aspx
看起来它不能在紧凑的情况下完成。您必须阅读所有作业,或者制作一个 SqlReader,然后只阅读第一个作业。
好找个理由。Management Studio 携带并使用它自己的版本 od SQL Server Compact。在http://en.wikipedia.org/wiki/SQL_Server_Compact中查看更多信息。
SQL Server Management Studio 2005 可以读取和修改 CE 3.0 和 3.1 数据库文件(使用最新的服务包),但读取 3.5 版文件需要来自 "Katmai" 2008 CTP 版本(或更高版本)的 SQL Server Management Studio 2008。
SQL Server Management Studio 2008 和 Microsoft Visual Studio Express 2008 SP1 的 RTM 可以创建、修改和查询 CE 3.5 SP1 数据库文件。