Update: Ändern einer Tabelle mit DRI-überlappend, die in einer indizierten Ansicht beteiligt ist 8624 Fehlermeldung verursachen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 288174 - Produkte anzeigen, auf die sich dieser Artikel bezieht
# Fehler: 350912 (SHILOH_bugs)
Alles erweitern | Alles schließen

Problembeschreibung

Wenn ein Benutzer gelöscht oder einen Datensatz in SQL Server aktualisiert, möglicherweise ein Fehler ausgelöst:
Server: Msg 8624, Ebene 16, Status 1, Zeile 1
Interner SQL Server-Fehler.
Eine Fehlermeldung wird an den Client zurückgegeben. Keine Verletzung Informationen Fehlermeldung oder der Zugriff wird in SQL Server-Fehlerprotokolle geschrieben. Der Datensatz wird nicht gelöscht oder aktualisiert.

Ursache

Dieser Fehler kann nur auftreten, wenn eine Mitgliedstabelle einer indizierten Sicht aktualisiert oder gelöscht und eine DRI CASCADE-Einschränkung zwischen der Tabelle und anderen Tabellen in der Ansicht. Überprüfen Sie, wenn die Tabelle mit einem cascading Delete oder Update-Einschränkung definiert ist. Anschließend überprüfen Sie, wenn ist eine Ansicht mit einem Index, der von den Tabellen abhängt.

Lösung

Beziehen Sie das neueste Service Pack für SQL Server 2000, um dieses Problem zu beheben. Weitere Informationen finden Sie die folgende KB-Artikelnummer:
290211Info: Wie Sie das neueste SQL Server 2000 Service Pack erhalten

Abhilfe

Um dieses Problem zu umgehen, entfernen Sie die DRI CASCADE-Einschränkung oder den Index in der Ansicht.

Status

Microsoft hat bestätigt, dass dies ein Problem in SQL Server 2000 ist. Dieses Problem wurde erstmals im SQL Server 2000 Service Pack 1.

Weitere Informationen

Um dieses Problem zu reproduzieren, führen Sie das folgende Skript:
set ansi_nulls on
set ansi_padding on
set ansi_warnings on
set arithabort on
set concat_null_yields_null on
set quoted_identifier on
set numeric_roundabort off
go

CREATE TABLE [dbo].[adults] (
	[AdultId] [int] NOT NULL ,
	[FName] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
	[LName] [varchar] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[kids] (
	[AdultId] [int] NOT NULL ,
	[KidId] [int] NOT NULL ,
	[FName] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
	[LName] [varchar] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL 
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[adults] WITH NOCHECK ADD 
	CONSTRAINT [PK_adults] PRIMARY KEY  CLUSTERED 
	(
		[AdultId]
	)  ON [PRIMARY] 
GO

ALTER TABLE [dbo].[kids] ADD 
	CONSTRAINT [FK_kids_adults] FOREIGN KEY 
	(
		[AdultId]
	) REFERENCES [dbo].[adults] (
		[AdultId]
	) ON DELETE CASCADE  ON UPDATE CASCADE 
GO



SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

/****** Object:  View dbo.v_AdultsWithKids    Script Date: 1/2/01 4:30:41 AM ******/ 

create view dbo.v_AdultsWithKids
with schemabinding
as

select a.adultid, a.fname as 'Adult First Name', a.lname as 'Adult Last Name', k.kidid, k.fname as 'Kid First Name', k.lname as 'Kid Last Name'
from dbo.adults a inner join dbo.kids k 
on a.adultid = k.adultid

GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO


set ANSI_PADDING,ANSI_WARNINGS,CONCAT_NULL_YIELDS_NULL,ARITHABORT,QUOTED_IDENTIFIER,ANSI_NULLS on 
GO

set NUMERIC_ROUNDABORT off 
GO

 CREATE  UNIQUE  CLUSTERED  INDEX [iv_cl_kidid] ON [dbo].[v_AdultsWithKids]([kidid]) ON [PRIMARY]
GO

insert into adults values (1, 'Bob', 'Johnson')
insert into kids values (1, 1, 'Joe', 'Johnson')
insert into kids values (1, 2, 'Jack', 'Johnson')
insert into kids values (1, 3, 'June', 'Johnson')

insert into adults values (2, 'Mary', 'Thomas')
insert into kids values (2, 4, 'John', 'Thomas')

insert into adults values (3, 'Susan', 'Sist')
go

delete from adults where adultid = 2
go

set NUMERIC_ROUNDABORT off set arithabort  OFF 
GO

SET QUOTED_IDENTIFIER OFF 
 
SET ANSI_NULLS ON 
GO
				

Eigenschaften

Artikel-ID: 288174 - Geändert am: Donnerstag, 6. November 2003 - Version: 3.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2000 Standard Edition
Keywords: 
kbmt kbbug kbfix kbsqlserv2000sp1fix KB288174 KbMtde
Maschinell ü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: 288174
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.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com