Respostas:
Não faz. Há um equivalente vago:
mycol VARCHAR(10) NOT NULL CHECK (mycol IN('Useful', 'Useless', 'Unknown'))
A melhor solução que encontrei aqui é criar uma tabela de pesquisa com os valores possíveis como chave primária e criar uma chave estrangeira para a tabela de pesquisa.
Tabelas de pesquisa IMHO é o caminho a percorrer, com integridade referencial. Mas somente se você evitar "Números Mágicos do Mal", seguindo um exemplo como este: Gere enum a partir de uma tabela de pesquisa de banco de dados usando T4
Diverta-se!
CREATE FUNCTION ActionState_Preassigned()
RETURNS tinyint
AS
BEGIN
RETURN 0
END
GO
CREATE FUNCTION ActionState_Unassigned()
RETURNS tinyint
AS
BEGIN
RETURN 1
END
-- etc...
Onde o desempenho importa, ainda use os valores concretos.
Encontrei essa abordagem interessante quando quis implementar enumerações no SQL Server.
A abordagem mencionada abaixo no link é bastante convincente, considerando que todas as suas necessidades de enum de banco de dados podem ser satisfeitas com 2 tabelas centrais.