アプリケーションを SQL 2005 から SQL Server Compact Edition に移植しているときに、次のコマンドを移植する必要があることがわかりました。
SELECT TOP 1 Id FROM tblJob WHERE Holder_Id IS NULL
TOP
ただし、SQL Server Compact Edition はキーワードをサポートしていません。このコマンドを移植するにはどうすればよいですか?
アプリケーションを SQL 2005 から SQL Server Compact Edition に移植しているときに、次のコマンドを移植する必要があることがわかりました。
SELECT TOP 1 Id FROM tblJob WHERE Holder_Id IS NULL
TOP
ただし、SQL Server Compact Edition はキーワードをサポートしていません。このコマンドを移植するにはどうすればよいですか?
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の名前を使用してデータソースの行と一致させます。.NETCompactFrameworkでサポートされています。
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 データベース ファイル (最新のサービス パックを適用) を読み取って変更できますが、バージョン 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 データベース ファイルを作成、変更、およびクエリできます。