Polecenie dodania domyślnego wiązania

82

Wydaje się, że istnieją co najmniej dwa sposoby dodania domyślnego ograniczenia przy użyciu prostego języka T-SQL. Czy mam rację, że jedyną różnicą między tymi dwoma opisanymi poniżej jest to, że druga metoda tworzy nazwę ograniczenia, a pierwsza ma nazwę wygenerowaną przez SQL Server?

ALTER TABLE [Common].[PropertySetting] ADD DEFAULT ((1)) FOR [Active];
ALTER TABLE [Common].[PropertySetting] ADD CONSTRAINT [DF_PropertySetting_Active) DEFAULT ((1)) FOR [Active];
Randy Minder
źródło

Odpowiedzi:

105

Prawie tak, dla ALTER TABLE

Możesz dodać kolumnę z wartością domyślną w jednym kroku, aby utworzyć lub ZMIEŃ.

ALTER TABLE foo ADD bar varchar(100) CONSTRAINT DF_Foo_Bar DEFAULT ('bicycle')
ALTER TABLE foo ADD bar varchar(100) DEFAULT ('bicycle')

Jak zauważyłeś, system generuje nazwę, jeśli jej nie podano. CONSTRAINT constraint_namejest opcjonalne, mówi MSDN. To samo dotyczy dowolnej kolumny lub tabeli CONSTRAINT

Edytuj Jeśli kolumna została już utworzona, a chcesz tylko dodać ograniczenie, użyj:

ALTER TABLE TableName ADD CONSTRAINT DF_Foo_Bar DEFAULT 'bicycle' FOR FieldName;
gbn
źródło
3
Czy mogę użyć wygenerowanej nazwy zamiast DF_Foo_Bar, nawet jeśli kolumna już istnieje?
slartidan