DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 940569 - Geändert am: Dienstag, 25. August 2009 - Version: 2.0

Hotfix-Download ist verfügbar
Hotfix-Downloads anzeigen und anfordern
 
 

Problembeschreibung

Stellen Sie sich das folgende Szenario vor. Sie erstellen eine Tabelle, die eine Identitätsspalte in einer Microsoft SQL Server 2005-Datenbank verfügt. Konfigurieren Sie eine Mergereplikation auf die Tabelle. Eine Anwendung verwendet Microsoft ActiveX Data Objects (ADO), um eine Zeile in der Tabelle einzufügen. Anschließend ruft die Anwendung die eingefügte Zeile ab. Allerdings wird ein falscher Wert für die Identitätsspalte zurückgegeben.

Dieses Problem tritt auf, wenn der Computer, die die Anwendung ausgeführt wird eines der folgenden installiert verfügt:
  • Windows Server 2003
  • Windows XP
  • Microsoft Data Access Components 2.8 (MDAC 2.8)
Dieses Problem tritt nicht in einer Microsoft SQL Server 2000-Datenbank.

Ursache

Der Replikationsvorgang der erstellt Insert-Trigger in der Tabelle. Wenn Daten in der Tabelle eingefügt werden, verwenden Sie die Insert-Trigger @@ IDENTITY Variable anstelle der SCOPE_IDENTITY -Funktion. Daher die @@ IDENTITY Variable möglicherweise Rückgabewert eine Identität, die nicht in der aktuellen Tabelle ist.

Lösung

Installieren Sie um dieses Problem zu beheben, den Hotfix, der beschrieben wird im folgenden Artikel der Microsoft Knowledge Base:
961451  (http://support.microsoft.com/kb/961451/ ) Update Wenn Sie den zuletzt eingefügten Identitätswert, Abfragen Nachdem Sie einen clientseitigen Cursor Daten in eine Tabelle einfügen, die eine Identitätsspalte in einer Anwendung enthält, die ActiveX Data Objects verwendet, erhalten einen falschen Wert
Hinweis: Im Abschnitt "Lösung" in der früheren Version dieses Artikels beschriebenen Hotfix wird durch den Hotfix ersetzt, der im 961451 beschrieben wird.

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind.

Weitere Informationen

Die Funktion SCOPE_IDENTITY und @@ IDENTITY Variable zurückgeben die letzten Identitätswerte, die in jeder Tabelle in der aktuellen Sitzung generiert werden. Allerdings gibt die SCOPE_IDENTITY Funktion Werte, die nur im aktuellen Gültigkeitsbereich eingefügt werden. @@ IDENTITY Variable wird nicht die Einfügemarke auf einen bestimmten Gültigkeitsbereich begrenzt.

Genommen Sie an, dass die Datenbank eine Table1 und eine Tabelle2 enthält. Beide Tabellen haben Identitätsspalten. Ein Insert-Trigger wird in Tabelle 1 definiert. Wenn eine Zeile in Tabelle 1 eingefügt wird, fügt der Trigger eine Kopie der Zeile in Tabelle2. Dieses Szenario umfasst die folgenden zwei Bereiche:
  • Einfügemarke in Table1
  • Einfügen in Tabelle2 vom trigger
In diesem Szenario die @@ IDENTITY Variable und SCOPE_IDENTITY -Funktion geben unterschiedliche Werte auf, wenn eine Zeile in Tabelle 1 eingefügt wird. @@ IDENTITY gibt Variable den letzten Spalte Identitätswert zurück, die in der aktuellen Sitzung in allen Gültigkeitsbereichen eingefügt wird. In diesem Fall @@ IDENTITY Variable gibt den Identitätswert, die in Tabelle2 eingefügt ist zurück. Allerdings gibt die Funktion SCOPE_IDENTITY den Identitätswert, der in Table1, eingefügt wird zurück, da die Funktion SCOPE_IDENTITY gibt den Wert zurück, der zuletzt im selben Bereich eingefügt wird. Die Funktion SCOPE_IDENTITY gibt den NULL-Wert zurück, wenn die Funktion aufgerufen wird, bevor INSERT-Anweisungen, die an eine Identitätsspalte vorgenommen werden im Bereich auftreten.

Weitere Informationen zur Terminologie für Softwareupdates finden Sie im folgenden Artikel der Microsoft Knowledge Base:
824684  (http://support.microsoft.com/kb/824684/LN/ ) Erläuterung von Standardbegriffen bei Microsoft Softwareupdates

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional x64 Edition
  • Microsoft Data Access Components 2.8
Keywords: 
kbmt kbautohotfix kbwinxppresp3fix kbexpertiseinter kbwinserv2003postsp2fix kbbug kbfix kbhotfixserver kbqfe KB940569 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 940569  (http://support.microsoft.com/kb/940569/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store
Folgen Sie uns: