在sql server 2008中创建基于INT IDENTITY(#,#)的用户定义数据类型

时间:2011-10-10 10:09:53

标签: sql-server sql-server-2008

有谁知道是否可以创建类似这样的UDDT:

CREATE TYPE dbo.TID FROM int NOT NULL IDENTITY(1,1)

IDENTITY(1,1)之前的所有内容都是合法的,并且会生成新的UDDT。但是,我需要在定义UDDT期间自动设置IDENTITY以及在表定义期间使用。有时,如果我们决定从INT IDENTITY(#,#)更改为UNIQUEIDENTIFIER,我只想在一个地方更改它。我没有发现通过表格并从一种类型修改到另一种类型非常有趣,特别是因为会有很多表格。

此致

Huske

2 个答案:

答案 0 :(得分:1)

这是不可能的。看看CREATE TYPE。身份不是数据类型的一部分。它是列定义的一部分。

答案 1 :(得分:1)

没有。 IDENTITY属性也附加到表中,而不仅仅是列

您可能觉得它不是很有趣,但这就是SQL的工作原理

  • 并非所有表都需要代理键
  • 有些表需要tinyint或smallint或bigint
  • 如果您需要UNIQUEIDENTIFIER,请立即使用(并使用聚集索引命中)
  • 您是否真的需要现在