Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Czy mogę dodać niepustą kolumnę bez wartości DEFAULT?

Nie, nie możesz.

Ponieważ gdybyś mógł, SQL nie wiedziałby, co umieścić jako wartość w już istniejących rekordach. Jeśli nie masz żadnych rekordów w tabeli, działałoby bez problemów.

Najprostszym sposobem na to jest utworzenie kolumny z wartością domyślną, a następnie usunięcie wartości domyślnej.

ALTER TABLE dbo.MyTable ADD
MyColumn text NOT NULL CONSTRAINT DF_MyTable_MyColumn DEFAULT 'defaultValue'
ALTER TABLE dbo.MyTable
DROP CONSTRAINT DF_MyTable_MyColumn

Inną alternatywą byłoby dodanie kolumny bez ograniczenia, wypełnienie wartości dla wszystkich komórek i dodanie ograniczenia.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Komunikat 203, poziom 16, stan 2, nie jest prawidłowym identyfikatorem

  2. Count (Distinct ([wartość)) OVER (partycjonowanie według) w SQL Server 2008

  3. Wybór między dwiema datami w polu DateTime — SQL Server

  4. Przekazywanie tablicy parametrów do procedury składowanej

  5. Błąd zapytania z niejednoznaczną nazwą kolumny w SQL