Share via


Ändern von Daten in partitionierten Sichten

Aktualisiert: 05. Dezember 2005

Wenn eine partitionierte Sicht nicht aktualisierbar ist, kann sie nur als schreibgeschützte Kopie der ursprünglichen Tabelle dienen. Eine aktualisierbare partitionierte Sicht kann alle Funktionen der ursprünglichen Tabelle aufweisen.

Eine Sicht wird als aktualisierbare partitionierte Sicht betrachtet, wenn sie aus einer Reihe von SELECT-Anweisungen besteht, deren Resultsets mithilfe der UNION ALL-Anweisung zusammengefasst werden. Jede SELECT-Anweisung verweist auf eine SQL Server-Basistabelle. Diese Tabelle kann eine lokale Tabelle oder eine verknüpfte Tabelle sein, auf die mit einem vierteiligen Namen, mit der OPENROWSET-Funktion oder mit der OPENDATASOURCE-Funktion verwiesen wird (eine OPENDATASOURCE- oder OPENROWSET-Funktion, die eine Pass-Through-Abfrage angibt, ist nicht zulässig).

Darüber hinaus müssen Anweisungen zur Datenänderung, die auf die Sicht verweisen, die für INSERT-, UPDATE- und DELETE-Anweisungen definierten Regeln einhalten.

Falls die partitionierte Sicht auf mehrere Server verteilt ist, sollten Sie nach Möglichkeit Trigger oder kaskadierende Aktionen in den Basistabellen vermeiden. Ein Trigger oder eine kaskadierende Aktion könnte Änderungen an den zugrunde liegenden Daten vornehmen, die die Sichtdefinition betreffen könnten.

Verteilte partitionierte Sichten können nur aktualisiert werden, wenn der Benutzer CONTROL-, ALTER-, TAKE OWNERSHIP- oder VIEW DEFINITION-Berechtigungen für jede der Sicht zugrunde liegende Tabelle hat. Weitere Informationen finden Sie unter Problembehandlung bei der Metadatensichtbarkeit von verteilten partitionierten Sichten.

ms187067.note(de-de,SQL.90).gifHinweis:
Sie können Daten nur über eine verteilte partitionierte Sicht ändern, wenn Sie Microsoft SQL Server 2005 Enterprise Edition oder Microsoft SQL Server 2005 Developer Edition installieren. Allerdings können Sie Daten über eine lokale partitionierte Sicht in einer beliebigen Edition von SQL Server 2005 ändern.

INSERT-Anweisungen

INSERT-Anweisungen fügen über die partitionierte Sicht Daten zu den Mitgliedstabellen hinzu. Die INSERT-Anweisungen müssen die folgenden Regeln einhalten:

  • Alle Spalten müssen in die INSERT-Anweisung eingeschlossen werden, und zwar auch dann, wenn die Spalte in der Basistabelle einen NULL-Wert aufweist oder in der Basistabelle eine DEFAULT-Einschränkung für die Spalte definiert ist.
  • Das DEFAULT-Schlüsselwort kann in der VALUES-Klausel der INSERT-Anweisung nicht angegeben werden.
  • INSERT-Anweisungen müssen einen Wert bereitstellen, der die für die Partitionierungsspalte definierte Logik der CHECK-Einschränkung für eine der Mitgliedstabellen erfüllt.
  • INSERT-Anweisungen sind nicht zulässig, wenn eine Mitgliedstabelle eine Spalte mit einer Identitätseigenschaft enthält.
  • INSERT-Anweisungen sind nicht zulässig, wenn eine Mitgliedstabelle eine timestamp-Spalte enthält.
  • INSERT-Anweisungen sind nicht zulässig, wenn eine Selbstverknüpfung mit derselben Sicht oder einer der Mitgliedstabellen vorliegt.

UPDATE-Anweisungen

UPDATE-Anweisungen ändern über die partitionierte Sicht Daten in einer oder mehreren der Mitgliedstabellen. Die UPDATE-Anweisungen müssen die folgenden Regeln einhalten:

  • UPDATE-Anweisungen können in der SET-Klausel nicht das DEFAULT-Schlüsselwort als Wert angeben. Dies gilt auch dann, wenn in der entsprechenden Mitgliedstabelle ein DEFAULT-Wert für die Spalte definiert ist.
  • Der Wert einer Spalte mit einer Identitätseigenschaft kann nicht geändert werden; die anderen Spalten können jedoch aktualisiert werden.
  • Der Wert eines Primärschlüssels kann nicht geändert werden, wenn die Spalte Daten vom Typ text, image oder ntext enthält.
  • Aktualisierungen sind nicht zulässig, wenn eine Basistabelle eine timestamp-Spalte enthält.
  • Aktualisierungen sind nicht zulässig, wenn eine Selbstverknüpfung mit derselben Sicht oder einer der Mitgliedstabellen vorliegt.

DELETE-Anweisungen

DELETE-Anweisungen entfernen über die partitionierte Sicht Daten aus einer oder mehreren der Mitgliedstabellen. DELETE-Anweisungen sind nicht zulässig, wenn eine Selbstverknüpfung mit derselben Sicht oder einer der Mitgliedstabellen vorliegt.

Siehe auch

Konzepte

Implementieren von vereinten Datenbankservern

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

05. Dezember 2005

Neuer Inhalt:
  • Informationen zu den notwendigen Berechtigungen zum Aktualisieren einer verteilten partitionierten Sicht wurden hinzugefügt.
Geänderter Inhalt:
  • Der folgende Text wurde entfernt: "Eine partitionierte Sicht, die für einen Server lokal ist, ist nicht aktualisierbar, wenn ein Trigger oder ein Folgeupdate oder eine Löschweitergabe für mindestens eine Mitgliedstabelle definiert ist."