Tôi đang cố gắng thay đổi giá trị mặc định của cột bằng cách sử dụng câu lệnh SQL trong SQL Server 2008. Tôi đã tìm thấy ở nhiều nơi cách đặt giá trị mặc định khi bạn tạo bảng/thêm một cột nhưng không làm thế nào để đặt nó/sửa đổi nó một khi cột đã tồn tại.Sửa đổi giá trị mặc định trong SQL Server
Đây là những gì tôi có thể sử dụng để thiết lập nó trên nói thêm:
ALTER TABLE MyTable ADD MyColumn int NOT NULL DEFAULT 0
Và đó hoạt động, nhưng nếu tôi cố gắng thay đổi nó sau này:
ALTER TABLE MyTable ALTER COLUMN MyColumn int NOT NULL DEFAULT -1
ALTER TABLE MyTable ALTER COLUMN MyColumn int NOT NULL SET DEFAULT -1
Không ai trong số đó là những cú pháp đúng, và tôi không tìm thấy cú pháp để làm những gì tôi giả vờ ở bất cứ đâu. Tùy chọn duy nhất tôi đi kèm là thêm cột mới, sao chép giá trị từ cột trước đó, sau đó xóa cột trước đó và cột mới để thực hiện thay đổi, nhưng điều đó dường như không đúng với tôi.
Có cách nào để làm những gì tôi muốn chỉ trong một câu đơn giản không?
Cảm ơn.
Tôi sẽ chỉ thêm làm thế nào để có được các tên hạn chế để giải thích của bạn: CHỌN TÊN FROM sys.default_constraints WHERE parent_object_id = OBJECT_ID ('dbo.MyTable'); Việc thực hiện điều đó sẽ giúp bạn biết được ràng buộc nào cần xóa/thêm lần nữa. –
Điều này cho thấy rõ ràng lý do tại sao nó rất quan trọng để ** một cách rõ ràng tên ** hạn chế của bạn! Hãy tưởng tượng bạn muốn bỏ ràng buộc này ....sẽ dễ dàng hơn bao nhiêu nếu bạn biết nó được gọi là 'DF_Temp_X' (thay vì hệ thống tạo ra' DF ___ temp__x__5A3B20F9') –
@ Ruben.Canton: "sp_help TABLE_NAME" cũng vậy. –