MS SQL i unique (nie pozwala na wstawienie dwa razy null)
kurciok@poczta.onet.pl - 13-11-2006 00:43
MS SQL i unique (nie pozwala na wstawienie dwa razy null)
W MSSQL unique nie pozwala na powtarzanie sie wartosci w danej kolumnie ale tez przy okazji nie pozwala na wstawienie do niego nulla :( w PL/SQL (np. w firebirdzie) jest inaczej i nula mozna wstawic jak dana kolumna jest unique. Jak sobie z tym poradzic? Chce aby mi ta kolumna dzialala tak aby wartosci w niej nie mogly sie powtórzyc, ale aby nulla mozna bylo do niej wstawic po kilka razy.
Marcin A. Guzowski - 13-11-2006 00:43
kurciok@poczta.onet.pl napisał(a): > W MSSQL unique nie pozwala na powtarzanie sie wartosci w danej > kolumnie ale tez przy okazji nie pozwala na wstawienie do niego nulla > :( w PL/SQL (np. w firebirdzie) jest inaczej i nula mozna wstawic jak > dana kolumna jest unique. Jak sobie z tym poradzic? Chce aby mi ta > kolumna dzialala tak aby wartosci w niej nie mogly sie > powtórzyc, ale aby nulla mozna bylo do niej wstawic po kilka razy.
To standardowe zachowanie SQL Servera. Na temat wielokrotnego NULLa w kolumnie z UNIQUE constraint sprzeczne informacje można znaleźć nawet w BOL. W jednej części (poświęconej constraintowi) napisane jest, że jeżeli kolumna dopuszcza NULLe - wielokrotne wartości NULL mogą występować, w drugiej natomiast (dot. UNIQUE index) - że nie. Sęk w tym, że UNIQUE constraint realizowany jest fizycznie przez UNIQUE index, więc ważniejsze (i prawdziwe) jest to drugie stwierdzenie.
Także masz dwa wyjścia - albo "unikalności" (skoro chcesz powielać NULLe to jest to prawie-unikalność) pilnować w inny sposób, albo próbować robić coś takiego: http://blogs.msdn.com/sqlcat/archive...20/506138.aspx
Drugiej opcji nie polecam.
-- Pozdrawiam, Marcin Guzowski http://guzowski.info
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?=
=?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
=?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?=
[Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
=?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
[oracle] - Oracle SQL Developer - co to jest SID?
=?ISO-8859-2?Q?[Oracle]_Wywo=B3anie_skryptu_sh_z_PL/SQL-a=3F=3F?=
[oracle] Baza danych do kursy Introduction to Oracle9i:PL/SQL ? Skąd ją pobrać ?
zanotowane.pldoc.pisz.plpdf.pisz.plfantazia.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|