2009-12-08 39 views
7

Tôi có một bảng có cột 'CompanyID int không null' và giá trị mặc định của nó được đặt thành 10. Bây giờ tôi muốn viết truy vấn sẽ thay đổi giá trị mặc định này thành 1. Làm cách nào tôi có thể làm đi?Giá trị mặc định của cột thay đổi

Mọi trợ giúp sẽ được đánh giá cao. Tôi đang sử dụng máy chủ SQL 2000.

+1

Bạn có nói rằng bạn muốn đặt các hàng đã được đặt mặc định là 10 thành một giá trị mới không? (Trong trường hợp này bạn có thể thấy khó phân biệt sự khác biệt giữa một hàng đã được mặc định là 10 và một hàng đã được đặt thủ công thành 10.) –

+0

Không có mục nhập nào trong bảng. Tôi muốn thay đổi giá trị mặc định của cột CompanyID thành 1.so rằng mỗi khi tôi chèn dữ liệu vào bảng, nó sẽ tự động chèn 1 vào cột CompanyID. Trước đó, giá trị mặc định được đặt thông qua ràng buộc. – user92027

Trả lời

1
ALTER TABLE tablename ALTER COLUMN CompanyID SET DEFAULT 1; 
+1

Tôi đã thử điều này, nó không hoạt động. Lỗi là 'Cú pháp không chính xác gần từ khóa' SET '.' – user92027

+0

Tôi nghĩ rằng nó không thể được thực hiện theo cách này trong máy chủ sql 2000 – Jonathan

9

Trước tiên, hãy tìm hiểu tên của 'ràng buộc' trên trường được sử dụng để đặt mặc định. Bạn có thể thực hiện việc này bằng cách chạy truy vấn này:

EXEC sp_helpconstraint 'MyTable' 

Sau đó, bạn có thể chỉ cần thả và thêm lại ràng buộc.

ALTER TABLE dbo.MyTable 
DROP CONSTRAINT def_MyTable_CompanyID 
GO 

ALTER TABLE dbo.MyTable 
ADD CONSTRAINT def_MyTable_CompanyID DEFAULT (1) FOR CompanyID 
GO 
17

Tôi nghĩ rằng tốt nhất bạn có thể làm là thả các hạn chế và tạo ra nó một lần nữa:

alter table dbo.yourTable 
drop constraint default_value_name_constraint 
go 
alter table dbo.yourTable 
add constraint default_value_name_constraint default YourValue for ColumnName 
go 
+1

Cảm ơn dude, tôi đang làm việc tốt. Cảm ơn rất nhiều. – user92027

-1
ALTER TABLE tablename ALTER COLUMN CompanyID SET DEFAULT Pending; 

Tôi đã cố gắng này trong mysql và nó đã đưa ra lỗi gần Pending

Sau đó, tôi đã thử

ALTER TABLE tablename ALTER COLUMN CompanyID SET DEFAULT 'Pending'; 

làm việc tốt.

Các vấn đề liên quan