Update einer view with CHECK OPTION es gelingt unerwartet

Wie funktioniert das CHECK OPTION Arbeit auf einen Blick? Wenn Sie versuchen, um die Ansicht zu aktualisieren, gelingt es.

CREATE TABLE [dbo].[Test](
    [Country] [nvarchar](20) NULL
) ON [PRIMARY]

INSERT [Test] VALUES ('England'), ('USA'), ('Australia');

CREATE VIEW dbo.TestView AS   
SELECT Country FROM  dbo.Test 
WHERE Country = N'USA'
WITH CHECK OPTION;

Ich versuchen, fügen Sie eine neue Zeile über die Sicht, und es ausfällt als erwartet, aufgrund der WITH CHECK OPTION mit der erwarteten Fehlermeldung The attempted insert or update failed because the target view either specifies WITH CHECK OPTION

INSERT INTO dbo.TestView (Country) VALUES (N'Canada');

Diesem update, jedoch gelingt es ihm unerwartet:

UPDATE dbo.TestView  SET Country = N'ddsffd';

Keine Zeilen zurückgegeben werden, die dann bei der Ausführung SELECT * FROM dbo.TestView.

Was ist denn hier Los?

  • Die UPDATE-Anweisung sollte in der Tat scheitern. Welche SQL-version verwenden Sie?
InformationsquelleAutor TheWommies | 2013-09-01
Schreibe einen Kommentar