Przypisanie wartości NULL do klucza obcego

0

Natrafiłem ostatnio na problem czysto teoretyczny (bo nie sądzę aby mi się to do czegoś przydało ;)). Ostatnio tak dla testu napisałem prosty program, który korzysta w 2 tabel w bazie danych (kluczami głównymi dla TabA jest A_id oraz TabB - B_id). Teraz w tabeli B mam kolumnę kluczy obcych z tabeli A. Pomimo, że jest to klucz obcy to ustawiłem w bazie, że kolumna może przyjmować wartości NULL. Gdy w programie próbuje wpisać wartość NULL do kolumny z kluczem obcym, to dostaję informację, że nie można zaktualizować wiersza. Da się wymusić wpisanie wartości NULL do kolumny z kluczem obcym czy jest to niemożliwe?

0

A czy ustawiłeś że relacja jest opcjonalna? Bo jeśli relacja jest tam obowiązkowa to nie będziesz mógł wstawić nulla.

0

Sprawdziłem i z poziomu SQL Server Management Studio mogę zmienić wartość na NULL. Natomiast w programie już nie... Tą tabelą, w której są wartości null zapełniam programową DataTable. Teraz staram się do tej lokalnej tabeli wpisać stringa "NULL" (albo chociaż użyć DBNull.Value) ale nie mogę wskoczyć do tych teoretycznie pustych komórek...

Zrobiłem tak

// Ustawienie kolumny na możliwość przyjęcia wartości NULL ponieważ domyślnie jest ustawione Int32
passedTable.Columns["A_id"].AllowDBNull = true;
/*
* Ustawienie wartości NULL
*/
foreach (DataRow r in passedTable.Rows)
{
    if (r.IsNull("A_id"))
    {
        r["A_id"] = DBNull.Value;
    }
}

Potem, podczas próby wykonania polecenia UPDATE dostaje komunikat The Update statement conflicted with the FOREIGN KEY constraint "". The conflict occured in database "test", table "dbo.TabA", column 'A_id'.

1 użytkowników online, w tym zalogowanych: 0, gości: 1