マイクロソフトは、1 つのダウンロード可能なファイルとしてマイクロソフト SQL Server 2012 サービス パック 1 の修正プログラムを配布します。修正プログラムは累積的であるため、新しいリリースごとに、すべての修正プログラムと、以前の SQL Server 2012 Service Pack 1 修正プログラム リリースに含まれていたすべてのセキュリティ修正プログラムが含まれています。
現象
sql Server 2012 のスタイルパラメーターと共にTRY_CONVERT関数を使用するクエリを実行することを想定しています。このような場合は、スタイルパラメーターが無視され、クエリが正しくない結果を返す可能性があります。
解決方法
累積的な更新プログラムの情報
SQL Server 2012 SP1 の累積的な更新プログラム 2
この問題の修正プログラムは、累積的な更新プログラム 2 で最初にリリースされました。SQL Server 2012 SP1 のこの累積的な更新プログラム パッケージを取得する方法の詳細については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。
2790947 SQL Server 2012 サービス パック 1 の累積的な更新プログラム パッケージ 2メモビルドは累積的であるため、各新しい修正プログラム リリースには、すべての修正プログラムと、以前の SQL Server 2012 SP1 修正プログラム リリースに含まれていたすべてのセキュリティ修正プログラムが含まれています。この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。詳細については、次のサポート技術情報番号をクリックしてください。
2772858 SQL Server 2012 サービス パック 1 がリリースされた後にリリースされた SQL Server 2012 ビルド
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細情報
この問題を再現するには、次の手順を実行します。
-
SQL Server 2012 SP1 で "Test" という名前のテーブルを作成し、テーブルにレコードを挿入します。CREATE TABLE TEST (I DATE);INSERT INTO TEST VALUES (GETDATE());
-
正しい結果を返すには、次のクエリを実行します。SELECT TOP 1 TRY_CONVERT(VARCHAR, TRY_CONVERT(DATE, '20121023'), 112) FROM TEST;SELECT CONVERT(VARCHAR, TRY_CONVERT(DATE, '20121023'), 112) FROM TEST;SELECT CONVERT(VARCHAR, CONVERT(DATE, '20121023'), 112) FROM TEST;SELECT TRY_CONVERT(VARCHAR, '20121023', 112) FROM TEST;--The returned result is "20121023".
-
次に、次のクエリを実行して、誤った結果を返します。SELECT TRY_CONVERT(VARCHAR, TRY_CONVERT(DATE, '20121023'), 112) FROM TEST;SELECT TRY_CONVERT(VARCHAR, CONVERT(DATE, '20121023'), 112) FROM TEST;--The returned result is "2012-10-23".
参照情報
TRY_CONVERT (Transact-SQL) 関数の詳細については、次の MSDN web サイトを参照してください。
TRY_CONVERT (Transact-SQL) 関数に関する一般的な情報SQL Server の増分サービス モデルの詳細については、次のサポート技術情報番号をクリックしてください。
935897 SQL Server チームから増分サービス モデルを利用して、報告された問題の修正プログラムを提供するSQL Server 更新プログラムの名前付けスキーマの詳細については、次のサポート技術情報番号をクリックしてください。
822499 Microsoft SQL Server ソフトウェア更新プログラム パッケージの名前付けスキーマソフトウェア更新プログラムの用語の詳細については、次のサポート技術情報番号をクリックしてください。
824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明