KB4046745 – FIX: Update-Anweisung schlägt im Hintergrund fehl, wenn Sie in der WHERE-Klausel in SQL Server 2014, 2016 oder 2017 auf eine nicht vorhandene Partitionsfunktion verweisen

Gilt für
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)

Symptome

Angenommen, Sie verfügen über eine UPDATE-Anweisung, die mithilfe der $PARTITION Schlüsselwort (keyword) in Microsoft SQL Server 2014, 2016 oder 2017 auf eine nicht vorhandene Partitionsfunktion verweist. Beispiel:

Hinweis

UPDATE TableName SET ColumnName='xyz' WHERE $PARTITION. NonExistingPartitionFunction(ColumnName) = 1

In diesem Fall führt SQL Server keine Aktualisierung durch oder gibt keine Fehlermeldung zurück, die darauf hinweist, dass das NonExistingPartitionFunction-Objekt nicht vorhanden ist. Aus Benutzersicht scheint es jedoch, dass die UPDATE-Anweisung erfolgreich ausgeführt wurde, aber tatsächlich ist sie fehlgeschlagen.

Ursache

Wenn Sie einen Batch ausführen, können SQL Server die verzögerte Namensauflösung (DNR) ausführen. In diesem Prozess erzeugt SQL Server nicht sofort einen Fehler, wenn ein nicht vorhandenes Objekt gefunden wird, und erwartet, dass das Objekt vom Modul oder Batch vor der Ausführung der Anweisung erstellt wird, die auf dieses Objekt verweist. Bei Partitionsfunktionen verarbeitet SQL Server DNR nicht ordnungsgemäß.

Weitere Informationen

Weitere Informationen zu DNR finden Sie unter Verzögerte Namensauflösung.

Lösung

Dieses Problem wurde in den folgenden kumulativen Updates für SQL Server behoben:

Kumulatives Update 8 für SQL Server 2016 SP1

Kumulatives Update 4 für SQL Server 2017

Kumulatives Update 9 für SQL Server 2014 SP2

Informationen zu kumulativen Updates für SQL Server:

Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsfixes, die im vorherigen kumulativen Update enthalten waren. Sehen Sie sich die neuesten kumulativen Updates für SQL Server an:

Neuestes kumulatives Update für SQL Server 2016

Neuestes kumulative Update für SQL Server 2017

Neuestes kumulatives Update für SQL Server 2014

Status

Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.

Referenzmaterial

Informieren Sie sich über die Terminologie, die Microsoft zum Beschreiben von Softwareupdates verwendet.