あまり情報のない SQL Server Compact 3.5 SP1 ですが、ご本家 SQL Server との違い、制限事項をメモしておきます。
どうも、SQLServer で検索しても、思う様に動かない時の為の、個人的な備忘録です。
気付いたら、追加して行きますね。
以下、順不同で、かつ、網羅していませんが、個人的なメモですので、ご勘弁下さい。
先ず、Compact の名前からも分かる様に、機能限定版です。
T-SQL言語のサブセットを実装していますが、エンジンはご本家 SQL Server とは異なっています。
一応の事は出来ますが、制限がある訳です。
大きな違いは、ファイルベールで、データベースそのものを管理する機能は、ほぼ、無い 事です。
細かい面倒は、システム設計者が アプリやソフト等で独自に書いてやらねばなりません。
アプリケーションに組み込まれて使う前提なので、ユーティリティの類はあまりありません。
データベースの削除やコピーは OS のファイルシステムで行う 。
対話的な操作は OS の Explorer で、
アプリケーションからは System.IO.File クラスを使って、 という形になりますね。
列名変更等のデータベース構造の訂正は上手く行かない 。
具体的には、事後の、列名変更が駄目、列の移動・挿入も駄目 。
列は、一旦作成すると、順番と名称が固定されてしまい、以降は追加のみが可能。
列名を変えたければ、列の最後に変更列名で新規作成し、データをコピー その後に元列を削除。
列の移動・挿入では、それ以降の全ての列を削除し、新規に再構築。 或いは、諦め。
充分にデータベース構造を検討してから、作成する方がいいです。
取り敢えず作って動かして見ながら修正して行く方法では、嵌り易いです。
いっその事、新規に、作り直した方が早い場合すらありました。
データを取得( Fill )する SQL 文で、順番や名称を変え、
データベース上は、名称の不一致や順序の混乱に目を瞑る、といった 妥協も必要かも です。
(要、相互の対照の記録を何処かに残す。 例:ソースコード中)
これを解消するには、先述の大幅な変更(データベース作り直し)を乗り越えねばなりません。
サブクエリ (副問い合わせ) は一部サポートされません 。
Select ... ( Select ... ) From ... 等のサブクエリが使えません。 select_list そして expression の中では駄目。
Select ... Where Exist ( Select ... ) From ... の様に、Where 句中 Exist 句の中のサブクエリはOKです。
別テーブルへの書き出しがサポートされません 。
Select ... INTO ... は駄目です。 INTO 句はありません。
0 件のコメント:
コメントを投稿