2011-06-17 10 views

Odpowiedz

8

Jeśli klucze obce są ustawione na zmiany kaskadowe, wartość powinna się zmienić automatycznie.

+1

uzyskać: Nie można zaktualizować kolumny tożsamości „Id'.query jest UPDATE [TABLEA] SET id = 8 gdzie id = 9 – user278618

+1

Wystarczy popatrzeć na http://stackoverflow.com/questions/751522/how-to -change-identity-column-values-programowo – Ray

+0

@ user278618: ty ** nie możesz ** zaktualizować istniejącej wartości "TOŻSAMOŚCI" - nie ma sposobu, aby to zrobić. –

3

Upewnij się, że w powiązaniach kluczy obcych określono AKTUALIZACJĘ NA ZAMIESZKANIE, a klucz obcy zostanie automatycznie zaktualizowany zgodnie z kluczem podstawowym.

Od Books Online: http://msdn.microsoft.com/en-us/library/ms174123%28v=SQL.90%29.aspx

ON UPDATE CASCADE {| BRAK DZIAŁANIA | SET DEFAULT | SET NULL}

Określa, co dzieje się akcja wiersza w tabeli, która jest tworzona, gdy że rząd ma więzów relacji i odwołuje rząd jest aktualizowana w tabeli nadrzędnej. Domyślnie to BRAK DZIAŁANIA. Więcej informacji można znaleźć w sekcji "Uwagi" na stronie w dalszej części tego tematu: .

0

Aktualizacja klucza podstawowego nie aktualizuje powiązanych kluczy obcych, usuwa tylko powiązane rekordy z innych tabel, ponieważ serwer Sql traktuje aktualizację jako usuwanie i wstawianie. To jest Sql Server 2000, nie jestem pewien późniejszych wersji. Używając "na kaskadowej aktualizacji przy usuwaniu kaskadowym", kaskadowe efekty "delete and insert: aka update", usuwają powiązane wpisy z innych tabel.