問題タブ [compatibility-level]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server-2005 - アップグレードしたデータベースの互換性レベルを 8 から 9 に変更する必要がありますか?
SQL Server 2000 インスタンスを SQL Server 2005 インスタンスにアップグレードする予定です。
データベース コードを変更するつもりはないので、SQL2005 固有の構文を利用するつもりはありません。互換性をより高く (レベル 9 に) 設定する理由はありますか? それとも、互換性レベル 8 のままで大丈夫ですか?
sql-server-2005 - データベース互換性レベルを SQL Server 2000 に設定した結果
Sql Server 2005 DB があります。なんらかの理由で、互換性レベル (たとえば、sp_dbcmptlevel 経由) は 80 (Sql Server 2000) に設定されています。
その結果は何ですか?それが原因でアプリのパフォーマンスが低下することはありますか?
linq-to-sql - Linq to Sql に Sql2005Provider を使用させることはできますか
このクエリ (またはそれに類似したクエリ) は、既に展開されているコードベースにあります。
DB は、データベースに接続するデータ コンテキストです。TimeBlocks はかなり単純なテーブルで、StartDate は DateTime 列です。
現在、データベースは Sql Server 2005 のインストールでホストされていますが、Sql Server 2008 のインストールにアップグレード中です。
クエリは現在問題なく実行されます。
Sql Server 2008 (互換性レベルは 2005 に設定) で実行されている同じデータベースのコピーを指すように接続文字列を変更すると、クエリは SqlException で失敗します。
「datepart ミリ秒は、データ型 date の日付関数 dateadd ではサポートされていません。」
これは、Linq が 2008db に接続するときに SQL に発行する異なる sql が原因のようです (これは、Sql2005Provider の代わりに Sql2008Provider を使用しているためだと思います)。
2005 Provider は適切な SQL を生成します。
これにより、クエリが正常に実行されます。ただし、Sql2008Provider によって発行される sql:
例外の原因となった誤った SQL が含まれています。
この問題を引き起こしているのは Sql プロバイダーであると考えるのは正しいですか?
このデータベースに Sql2005Provider を使用するように DataContext を強制することで、この問題を回避する方法はありますか?
ご協力いただきありがとうございます。
sql-server-2008 - SQL Server 互換性全文ストップリストとノイズ ワード
互換性レベル 90 (sql 2005) で SQL Server 2008 を実行している場合、リソース データベースのストップリストを使用しますか、それとも ftdata\ENU.txt ファイルを使用しますか?
また、2008 年に (互換性 100 を使用して) 独自のストップリストを作成した場合、システムのストップリストを無視して、全文クエリで独自のストップリストを使用できますか?それともシステムとカスタムのストップリストを使用しますか??
フルテキスト インデックス作成に関する質問がたくさんあります。ストップリストを扱うWeb上の優れたSQLリソースは、複数のテーブルにまたがって複数含まれています。大規模なレコード セット????
ありがとう!
sql-server - SQL Server 2012 の型システム バージョン (互換性レベル) とは
SQL Server 2012 のみがサポートされていることを示すために、ADO.NET 接続文字列で指定できるType System Version (互換性レベル) トークンは何ですか?
sql-server-2005 - SQL Server 2005 で互換性レベルを変更するのは危険ですか?
SQL Server 2005 データベースでクエリを実行して、最長の実行に関する統計を取得する必要があります。
次のクエリが見つかりました。
問題なく動作しますが、データベースの互換性レベルが 90 (SQL Server 2005) である必要があります。このデータベースのレベルは 80 (SQL Server 2000) です。90 に変更すると、日常業務に危険が及ぶ可能性はありますか? つまり、変更するとアプリケーションがクラッシュする可能性がありますか?
私の英語に感謝し、申し訳ありません。
sql-server-2012 - SQL Server 2012 で互換性レベル 80 を設定するにはどうすればよいですか?
SQL Server 2012 で互換性レベルを 80 に設定しようとすると、次のようになります。
次のエラーが表示されます。
メッセージ 15048、レベル 16、状態 1
データベース互換性レベルの有効な値は、90、100、または 110 です。
回避策はありますか?
c++ - DB 互換性レベルが 90 を超えると、ADO が不正なデータを返す
SQL Server 2008 データベースに接続してストアド プロシージャを実行する C++ dll があります。SQL Server は、このデータベースに対して互換性レベル 80 を使用しています。サーバーへの接続は、SQL Server OLE_DB ドライバーを使用して ADO を介して行われます。お客様は、互換性レベル 90 以上のみをサポートする SQL Server 2012 にアップグレードしたいと考えています。
ストアド プロシージャは 2 つの varchar 入力値を取り、2 つの varchar と 2 つの整数出力値を返します。DLL 内の C++ コードは、7 つのバリアントを作成して初期化し、それらのバリアントを使用して ADO 接続オブジェクトのパラメーター コレクションに 7 つのパラメーターを追加します。VARIANT とパラメーターの型は次のとおりです。
コマンドの実行後、出力 VARIANTS からの値が取得され、呼び出しプログラムに返されます。
ret_barcode パラメータでストアド プロシージャによって返される値は、データベースから読み取られた値です。この dll を SQL Server 2012 に対してテストすると、varchar 値が正しく返されません。ret_barcode VARIANT に含まれる実際の値は、テキスト「<strong>return_more_rows」です。これは、最後の出力パラメーターの名前です! ストアド プロシージャの最後で ret_barcode パラメータの値を文字列定数に設定すると、文字列定数が 13 文字以下である限り、適切な値が C++ dll に表示されます。
ADO.NET を使用した単純な C# テスト プログラムは、期待どおりに動作しました。
ストアド プロシージャの ret_barcode 変数の型を char(30) に変更すると、ret_barcode VARIANT に適切な値が返されます。デバッグ中に、Parameter.Refresh メソッドを使用して、ストアド プロシージャが想定しているパラメーターの種類を特定しました。どちらの場合も、ret_barcode パラメータは adVarChar でした。これにより、互換性レベルに応じて、サーバーがデータをパックしてクライアントに送信する方法に違いがあると思われます。
互換性レベルについて私が読んだことは、それらが単に機能を公開または制限していることを示しているようです。この問題を引き起こすために互換性レベル 80 と 90 の間で何が変更されたか、または DB からの varchar データをサポートするために DLL で何ができるかを知っている人はいますか?
sql-server - SQL Server データベース互換性レベルの変更の安全性を確認する方法は?
最近、SQL Server 2012 を実行している SQL Server を引き継ぎました。データベースの 1 つが互換性レベル 90 (SQL Server 2005) で実行されています。データベースが 2005 サーバーで作成され、移行されたことを知りました。開発者は、90 に保つ必要はないと主張しています。
データベース内のコードのいずれかが 2005 の機能または構文に依存しているかどうかを確認する方法はありますか?
データベースをバックアップして新しいコピーを復元し、そのコピーを 2012 モードに変換することはできますが、実際には何かわかりますか? 変更した後、数日または数週間後に何らかの機能または手順が壊れていることが判明するという状況に陥りたくありません。