SQL Compact 선택 상위 1
-
02-07-2019 - |
문제
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의 채우기 메소드를 사용했습니다. 넌 할 수있어:
dbdataadapter.fill (DataSet, Int32, Int32, String)은 데이터 세트의 지정된 범위에서 행을 추가하거나 새로 고침하여 데이터 세트 및 데이터 가능한 이름을 사용하여 데이터 소스의 것과 일치합니다. .NET Compact 프레임 워크에 의해 지원됩니다.
http://msdn.microsoft.com/en-ie/library/system.data.common.dbdataadapter.fill(v=vs.80).aspx
소형으로 할 수없는 것 같습니다. 모든 작업을 읽거나 SQLReader를 만들고 첫 번째 작업을 읽어야합니다.
이유를 찾았습니다.Management Studio는 자체 버전의 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 데이터베이스 파일을 생성, 수정 및 쿼리 할 수 있습니다.