13

アプリケーションを SQL 2005 から SQL Server Compact Edition に移植しているときに、次のコマンドを移植する必要があることがわかりました。

SELECT TOP 1 Id FROM tblJob WHERE Holder_Id IS NULL

TOPただし、SQL Server Compact Edition はキーワードをサポートしていません。このコマンドを移植するにはどうすればよいですか?

4

5 に答える 5

30
SELECT TOP(1) Id 
FROM tblJob 
WHERE Holder_Id IS NULL

私の知る限り、ブラケットが必要です。

参照: http://technet.microsoft.com/en-us/library/bb686896.aspx

追加: 同様に、バージョン 3.5 以降のみ

于 2008-09-26T09:20:02.047 に答える
2

これはあなたの質問とは少し直交しています。

実際、SQL Server Compact Edition は、SQL クエリではうまく機能しません。テーブルを直接開くと、パフォーマンスが大幅に向上します。.NET では、これを行うには、コマンド オブジェクトのCommandTextプロパティをテーブル名に設定し、CommandTypeプロパティを に設定しCommandType.TableDirectます。

結果をフィルター処理する場合は、フィルター処理する列のテーブルにインデックスが必要になります。IndexNameプロパティを設定して使用するインデックスを指定しSetRange、フィルターの設定に使用します。

その後、好きなだけレコードを読み取ることができます。

于 2008-09-26T17:33:37.217 に答える
1

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

于 2010-08-13T13:42:15.113 に答える
0

コンパクトにはできないようです。すべてのジョブを読み取るか、SqlReader を作成して、最初のジョブだけを読み取る必要があります。

于 2008-09-26T09:18:43.830 に答える
0

ちゃんと理由が見つかりました。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 データベース ファイルを作成、変更、およびクエリできます。

于 2008-10-20T16:07:44.750 に答える