現在、SQL Server でコードをテストする方法がありません。私はそれについて何も知らず、SQLite を使用しています。切り替え時に知っておくべきことは何ですか? 私のアプリは C# .NET でプログラムされています
5 に答える
まず始めに、グローバルロックが埋め込まれたインプロセス DB からエンタープライズ グレードのネットワーク DB に切り替える際の重要な点をいくつか示します。
ネットワーク化されたプログラミングを行うときに接続が失敗することと、そのような例外をエレガントに処理する方法を知る必要があります。
接続プーリングについて知っておく必要があります。
エンタープライズ グレードのエンタープライズ システムにはグローバル ロックがないため、トランザクションについて知っておく必要があります。
データベースが提供できる保証のタイプに依存する分離レベルについて知る必要があります。
T-SQL 言語によって作成されたものなど、SQL 拡張機能について学習する必要があります。これらの拡張機能により、複雑なロジックを簡単にプログラムできます。
コードをテストする「方法がない」と言うのはなぜですか? サーバーを利用できない場合でも、SQL Server Express Edition をテスト用に無料で使用できます。
http://www.microsoft.com/express/sql/default.aspx
これは、データベース ファイルが 4GB を超えないことを前提としています (編集: 1GB から修正)。
SQL Server は、T-SQL を構成する独自の言語拡張機能と共に、SQLlite よりも SQL-92 のより大きなサブセットをサポートしていますが、それ以外の場合は比較的簡単に移行できると思います。
Erland Sommarskog のサイトにアクセスして、すべてを読んでください。
SQL Express にもう 1 票。
それらのいくつかは、訴訟を起こしている sqlite の側面に応じて遭遇する可能性のある重要な違いです。
- 通常、SQL Server の列は厳密に型指定されています。Sqliteのように数値列にテキストデータを入れることはできません。
- SQL Server はストアド プロシージャをサポートしています。
- SQL Server では、ユーザー ID によってデータまたはルーチンへの特定の種類のアクセスをブロックできる個々のオブジェクトにアクセス許可を付与できます。Sqlite にはパーミッションの概念がありません。
論理的な違いの 1 つは、tsql の主キーがデフォルトで自動増加しないことです。(ここで他の違いを報告するかもしれません)