2008-12-19 4 views

Trả lời

19
ALTER TABLE Table 
ADD CONSTRAINT CK_Table_Column_Range CHECK (
    Column >= 0 AND Column <= 100 --Inclusive 
) 
+0

Nếu bạn sử dụng 'GIỮA 0 VÀ 100' như được đề cập trong các câu trả lời khác, SQL Server Management Studio sẽ chuyển nó thành' ([column]> = (0) AND [column] <= (100)) 'cho bạn nếu bạn đang sử dụng GUI để tạo nó. –

3

Ràng buộc kiểm tra như "tên trường GIỮA 0 VÀ 100" nên thực hiện.

2

Hãy thử:

ALTER TABLE myTableName 
ADD CONSTRAINT myTableName_myColumnName_valZeroToOneHundred 
CHECK (myColumnName BETWEEN 0 AND 100) 

kiểm tra này sẽ bao gồm - đây là một số thông tin về GIỮA từ MSDN: BETWEEN (Transact SQL)

1

Theo tôi, câu hỏi đúng không phải là "làm thế nào" nhưng "tại sao ".

Quy tắc 0-100 này nghe với tôi giống như quy tắc kinh doanh. Tại sao nó phải được thực hiện ở phía máy chủ/cơ sở dữ liệu? Nếu nhập sai giá trị, ai sẽ nhận được thông báo lỗi?

Nếu người dùng nhận được thông báo lỗi, sẽ không dễ dàng hơn khi mã cho anh ta thông báo trước khi giao dịch đến máy chủ không?

Điều gì về sửa đổi phạm vi? Có thể thay đổi quy tắc? Tôi đoán có: quy tắc ALLWAYS thay đổi. Phạm vi có thể được cập nhật từ 0-100 đến 101-200? Trong trường hợp này, những gì về các giá trị đã được nhập vào cơ sở dữ liệu?