2010-06-01 23 views
5

thể trùng lặp:
Does SQL Server 2005 have an equivalent to MySql’s ENUM data type?Làm thế nào để xác định ENUM trong SQL Server 2005?

Có cách nào để xác định ENUM trong SQL Server 2005?

Tôi có các giá trị cố định mà tôi cần sử dụng trong các quy trình và chức năng.

+0

Ngắt của http://stackoverflow.com/questions/262802/does-sql-server-2005-have-an-equivalent-to-mysqls-enum-data-type – IsmailS

+0

Cảm ơn bạn đã liên kết Ismail. Đã bỏ phiếu để đóng. –

+0

Bạn đang nói về cách lưu trữ giá trị đã đặt trong các procs được lưu trữ? bạn có thể không sử dụng "khai báo @constName varchar (1000)" – VoodooChild

Trả lời

5

Sử dụng một hoặc nhiều UDF vô hướng?

Một trong mỗi liên tục:

  • dbo.CONST_Bicycle lợi nhuận 1
  • dbo.CONST_Car lợi nhuận 2

Một mỗi enum:

  • dbo.CONST_Types('Bicycle') lợi nhuận 1
  • dbo.CONST_Types('Car') lợi nhuận 2

Hoặc sử dụng một bảng với ID, Tên mỗi enum

Sử dụng một enum phía khách hàng để phù hợp này (có lẽ với xác nhận đối với các giải pháp bảng)

không nhanh hoặc cách sạch sẽ để làm điều này như có trong .net (theo bình luận của bạn).

+0

Có nghĩa là tôi phải tạo một UDF vô hướng và một Loại liên kết với điều này. Từ cách này tôi có thể sử dụng điều này ở đâu? – KuldipMCA

1

Bạn có thể muốn có bảng tra cứu có tên LuVehicle Với cột Id và Tên.

Giá trị có thể trông giống như

1,Bicycle 
2,Car 
3,MotorCycle 

Sau đó, bạn có thể có chìa khóa foriegn của cột Id bất cứ nơi nào bạn cần trong các bảng cơ sở dữ liệu của bạn.

Để truy xuất tên chính xác của giá trị, bạn có thể có một kết nối bên trong đơn giản với bảng LuVehicle. Một cái gì đó như thế này

select empname, vehicleId, LuVehicle.Name from employees, LuVehicle 
where employees.vehicleId = LuVehicle.Id 
0

Máy chủ SQL hỗ trợ các loại dữ liệu do người dùng xác định. Bạn có thể muốn làm điều gì đó với CREATE TYPE (Transact-SQL). Nhưng tôi không biết ngay cả khi nó có thể thông qua các kiểu dữ liệu do người dùng định nghĩa và không nhận thức được ưu và nhược điểm của nó. Có thể ai đó sẽ ném thêm ánh sáng vào nó.

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