Tôi đang làm việc trên một dự án và tôi muốn lưu trữ một số thông tin được liệt kê dễ dàng trong một bảng. Kiểu dữ liệu enum của MySql thực hiện chính xác những gì tôi muốn: http://dev.mysql.com/doc/refman/5.0/en/enum.html. Có tương đương trong SQL Server 2005 không?SQL Server 2005 có tương đương với kiểu dữ liệu ENUM của MySql không?
Tôi biết tôi có thể lưu trữ các giá trị có thể có trong một bảng loại bằng một khóa, nhưng tôi không muốn liên kết ngược với nó để mô tả. Tiêu chuẩn cơ sở dữ liệu của chúng tôi không cho phép chúng tôi liên kết trên các trường không phải số nguyên hoặc uniqueidentifier, do đó, lưu trữ các khóa có thể là các ký tự cũng xuất hiện.
Điều đó phù hợp với tôi. Có một mối quan tâm còn lại: có cách nào dễ dàng để biết giá trị hợp lệ nào cho enum mà không chọn ra ràng buộc không? Tôi hiểu rằng có thể không có và tôi sẽ phải đưa ra quyết định dựa trên điều đó. –
Tôi không chắc chắn ý của bạn là "chọn ra" ràng buộc, nhưng bạn có thể kết nối truy vấn hệ thống này vào thứ gì đó có thể sử dụng được cho nhu cầu của bạn. chọn định nghĩa từ sys.check_constraints nơi [name] = 'yourConstraintName' – Nikki9696
Đối với cả ràng buộc ENUM và CHECK, bạn có thể truy vấn bảng hệ thống và bạn nhận được chuỗi có cú pháp đầy đủ chỉ định danh sách giá trị. Sau đó, bạn phải phân tích cú pháp đó để có được danh sách ở định dạng có thể sử dụng. Thật bất tiện khi truy vấn siêu dữ liệu như thể đó là dữ liệu. –