Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tôi có thể thêm một cột không rỗng mà không có giá trị DEFAULT không

Không, bạn không thể.

Bởi vì nếu bạn có thể, SQL sẽ không biết phải đặt giá trị gì trong các bản ghi đã tồn tại. Nếu bạn không có bất kỳ bản ghi nào trong bảng, nó sẽ hoạt động mà không có vấn đề gì.

Cách đơn giản nhất để thực hiện việc này là tạo cột với giá trị mặc định và sau đó loại bỏ cột mặc định.

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

Một giải pháp thay thế khác là thêm cột mà không có ràng buộc, điền giá trị cho tất cả các ô và thêm ràng buộc.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách kiểm tra xem một cột được tính toán có "Cố định" trong SQL Server hay không

  2. Chuyển đổi không thành công khi chuyển đổi giá trị varchar trong câu lệnh trường hợp

  3. SQL Operations Studio (SQLOPS) là gì?

  4. Cập nhật bản ghi trong bảng từ CTE

  5. Truy vấn SQL về thời gian tham gia Vào / Ra