Próbuję zmienić domyślną wartość kolumny za pomocą instrukcji SQL w SQL Server 2008. W wielu miejscach znalazłem sposób ustawiania wartości domyślnej podczas tworzenia tabeli/dodawania kolumna, ale nie jak ją ustawić/zmodyfikować, gdy kolumna już istnieje.Modyfikuj wartość domyślną w SQL Server
To co mogę używać, aby ustawić go na dodanie:
ALTER TABLE MyTable ADD MyColumn int NOT NULL DEFAULT 0
I to działa, ale gdy próbuję go zmodyfikować później:
ALTER TABLE MyTable ALTER COLUMN MyColumn int NOT NULL DEFAULT -1
ALTER TABLE MyTable ALTER COLUMN MyColumn int NOT NULL SET DEFAULT -1
Żaden z tych są składniowo poprawne, i nie znajduję składni, aby robić to, co udaje w dowolnym miejscu. Jedyną dostępną opcją jest dodanie nowej kolumny, skopiowanie wartości z poprzedniej kolumny, a następnie usunięcie poprzedniej kolumny i nowej kolumny w celu wprowadzenia zmiany, ale nie wydaje mi się to właściwe.
Czy istnieje sposób robienia tego, co chcę w jednym prostym zdaniu?
Dzięki.
Dodałbym tylko, jak uzyskać nazwy ograniczeń do wyjaśnień: SELECT NAME FROM sys.default_constraints WHERE parent_object_id = OBJECT_ID ("dbo.MyTable"); Po prostu to pomoże ci wiedzieć, które ograniczenie usunąć/dodać ponownie. –
To wyraźnie pokazuje, dlaczego tak ważne jest ** jednoznaczne podanie ** swoich ograniczeń! Wyobraź sobie, że chcesz rzucić to ograniczenie ...o ile łatwiejsze jest, jeśli wiesz, że nazywa się 'DF_Temp_X' (zamiast wygenerowanego przez system' DF _____ temp__x__5A3B20F9') –
@ Ruben.Canton: "sp_help TABLE_NAME" też to robi. –