Transact-SQL中是否有等效的typedef?

时间:2010-02-12 10:16:34

标签: sql sql-server sql-server-2005 tsql

在T-SQL(SQL Server 2005)中是否存在任何别名数据类型的方法,有点像C typedef?我希望能够将VARCHAR(20)的别名称为“my_datatype”,这样无论我想在哪里使用VARCHAR(20),我都可以使用my_datatype。

同义词允许您对表执行此类操作,并且某些数据类型也有内置同义词,但AFAICS无法定义您自己的数据类型同义词。有人知道有什么不同吗?

5 个答案:

答案 0 :(得分:6)

这个怎么样?

CREATE TYPE  [schema_name.]typename
FROM system_data_type_name [(precision,scale)] [NULL|NOT NULL]

例如

CREATE TYPE CountryCode
FROM char(2) NULL

答案 1 :(得分:3)

您正在寻找的是User Defined Datatypes或UDD。

答案 2 :(得分:2)

对于SQL Server 2005,您有aliasCLR类型。两者都使用CREATE TYPE

答案 3 :(得分:1)

或许创建类型?

答案 4 :(得分:0)

对于PostgreSQL,语法有点不同:

CREATE DOMAIN  [schema_name.]new_typename
AS existing_typename [any_constraint];

例如:

CREATE DOMAIN CountryCode
AS char(2);
相关问题