SQL Server Compact 3.5 と SQL Server 2008 TOP句の記述の許容の違い
SQL Server Compact 3.5で、TOP句を記述してエラーとなりました。
SQL Server Compact 3.5はイマイチ、返されるエラーが大雑把で原因が分かりにくいですね。
エラーとなったTOP句を含んだ文
select TOP 1 hoge_id from hoge ORDER BY hoge_id DESC
SQL Server Compact 3.5で、TOP句を記述してエラーとなりました。
SQL Server Compact 3.5はイマイチ、返されるエラーが大雑把で原因が分かりにくいですね。
エラーとなったTOP句を含んだ文
select TOP 1 hoge_id from hoge ORDER BY hoge_id DESC
SQL SERVER Management Studio Express 2008 を使用して、データベース内のテーブルを操作する際、規定値ではTOP 200 先頭行から200行までの編集となっています。
業務使用で、何十万行もレコードがあるなどは別として、TOP200行でははっきりいって歯がゆいだけです。
とりあえず、SQL SERVER Management Studio Express 2005までと同様にすべての行を編集できるように設定したいと思います。
SQL Server 2008(Editionがいくつかありますが、コアエンジンは同じ)と、SQL Server Compact 3.5これらの違いはどこにあるのでしょうか?
機能差があまりなければ、SQL Server 2008を使用して動作するアプリケーションソフトをデータベース接続部分の切り替えのみで、動作させることができます。
SQL Server Compact 3.5の特徴として
この3つから考えても、SQL Server 2008と比較した際、いくつもの機能が省略されているものと思われます。なにができて、なにができないのでしょうか?
データを扱うソフトなら、たいてい出力方法として、対応しているCSV形式と呼ばれるテキストファイル。
引用符と区切り文字で、データコピーが簡単に出力され、データの再利用にはよく使用されますよね。
CSV形式ファイルのインポートができれば、他ソフトで作成した住所録などが再利用できる可能性が広がります。
ひいては、利用ユーザの拡大につながりますので、インポート、エクスポートは必須機能ですね。
SQL Server などデータベース開発で、一時適にテーブルを空にしたいことがあります。
そのような時に、簡単にテーブルを空に(テーブル内のデータを全削除)できます。
truncate table テーブル名
この一文で、テーブル内のデータが全削除されます。
SQL Server 2008 Express へ接続している先から、接続先にあるデータベース名の一覧を取得します。
SELECT name FROM sys.databases
sys.databasesを使用して、データベース名の取得は可能です。
ですが、SQL Server のシステムで使用され、インストール当初から存在する4つのファイルも同時に表示されます。
データベースに接続し、ExecuteReaderでSqlDataReader へ結果を返しRecordsetの先頭から1行づつ読み取ります。
この処理の過程で、普通に値を得るには、
SQL SERVER 2008 のテーブルにIDENTITY列を追加して、データ挿入時にオートインクリメントでID値を自動増加させることはよくあります。
しかし、一旦、IDENTITY列を設定してあるテーブルにID値をあらかじめ明示して挿入しようとすると、IDENTITY列が設定してあるので、追加できません。
これは、これで正しい仕様だと思います。
ですが、テーブル定義した直後にあらかじめデータをいくつか挿入しておきたいことがあります。
こんな時、どうすればいいのでしょうか?
前回、第2回 SQL Server Select文で 条件分岐 case文の使用では、case文の種類をエントリーしました。
case文には、2種類、単純case式と検索case式がありました。
今回は、実際にcase文の使用例をあげたいと思います。