2010-12-17 14 views

Odpowiedz

14

wybrać:

a) Tworzenie not null z jakiejś ważnej wartości domyślnej
b) utworzyć null, wypełnić go, zmieniać do not null

0
IF NOT EXISTS (SELECT 1 
FROM syscolumns sc 
JOIN sysobjects so 
ON sc.id = so.id 
WHERE so.Name = 'Table1' 
AND sc.Name = 'Col1') 
BEGIN 
ALTER TABLE Table1 
ADD Col1 INT NOT NULL DEFAULT 0; 
END 
GO 
+1

Nie będzie działać na już istniejącej tabeli. – zerkms

+2

ALTER TABLE pozwala tylko na dodawanie kolumn, które mogą zawierać wartości null lub mają zdefiniowaną definicję DEFAULT lub dodawana kolumna jest kolumną tożsamości lub datownika, lub alternatywnie, jeśli żaden z powyższych warunków nie jest spełniony, tabela musi być pusta, aby umożliwić dodanie tej kolumny. Kolumny "Val" nie można dodać do niepustej tabeli "#Test", ponieważ nie spełnia ona tych warunków. –

+0

Mój błąd ... Poprawiłem teraz moje zapytanie ... –

55

Będziesz albo trzeba określić domyślny lub dodaj kolumnę z dozwolonymi wartościami NULL, zaktualizuj wszystkie wartości, a następnie zmień kolumnę na NOT NULL.

ALTER TABLE <YourTable> 
ADD <NewColumn> <NewColumnType> NOT NULL DEFAULT <DefaultValue> 
2

Istnieją dwa sposoby, aby dodać NOT NULL kolumn do tabeli:

  1. zmienić tabelę dodając kolumnę z NULL ograniczeń. Wypełnij kolumnę niektórymi danymi. Przykład: kolumna może być aktualizowana za pomocą ''

  2. ALTER tabeli, dodając kolumnę z ograniczeniem NOT NULL, podając wartości DEFAULT. ALTER tabela TableName DODAJ NewColumn dataType NOT NULL default ''

0

Najprostszym sposobem na to jest:

ALTER TABLE db.TABLENAME ADD COLUMN [datatype] NOT NULL DEFAULT 'value' 

Ex: dodanie kolumny X (nieco typ danych) do tabeli ABC z domyślna wartość 0

ALTER TABLE db.ABC ADD COLUMN x bit NOT NULL DEFAULT 0 

PS: Nie jestem wielkim fanem używania do tego projektanta stolików. O wiele łatwiej jest być tradycyjnym/staromodnym czasem. :). Mam nadzieję, że to pomoże odpowiedzieć

Powiązane problemy