在将一个应用从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及以上版本。
我使用了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,并只读取第一个。
找到了原因。管理工具携带并使用它自己的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数据库文件。