適用先
SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2017 Developer SQL Server 2017 Enterprise Core SQL Server 2017 Enterprise SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

現象

Microsoft SQL Server 2014、2016、または2017で$PARTITIONキーワードを使用して、存在しないパーティション関数を参照するUPDATEステートメントがあるものとします。 例えば

UPDATE TableName SET ColumnName= ' xyz ' $PARTITIONNonExistingPartitionFunction (ColumnName) = 1

この場合、SQL Server は、 Nonexistingpartitionfunction オブジェクトが存在しないことを示すために、update を実行しないか、エラーメッセージを返します。 ただし、ユーザーの視点から見ると、 UPDATE ステートメントは正常に実行されているように見えますが、実際には失敗したようです。

原因

バッチを実行すると、SQL Server では、遅延名前解決 (一括処理) が実行されることがあります。 このプロセスでは、存在しないオブジェクトが検出されたときに SQL Server はすぐにエラーを生成せず、そのオブジェクトを参照するステートメントの実行前に、モジュールまたはバッチによってオブジェクトが作成されることを想定しています。 パーティション関数の場合、SQL Server では正しく処理が正しく処理されません。

詳細情報

"閲覧" の詳細については、「 遅延名前解決」を参照してください。

解決方法

この問題は、SQL Server の次の累積的な更新プログラムで修正されています。

       SQL Server 2016 SP1 の累積更新プログラム8 

       SQL Server 2017 の累積更新プログラム4 

       SQL Server 2014 SP2 の累積更新プログラム9

SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。

SQL Server 2016 の最新の累積的な更新プログラム

SQL Server 2017 の最新の累積的な更新プログラム

SQL Server 2014 の最新の累積的な更新プログラム

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

関連情報

ソフトウェアの更新を説明するために Microsoft が使用する 用語について説明します。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。