Sql server 2005 SQL Server中的自动生成列
有没有办法在SQL Server中自动生成特定长度的列Sql server 2005 SQL Server中的自动生成列,sql-server-2005,Sql Server 2005,有没有办法在SQL Server中自动生成特定长度的列 例如,我希望特定列的默认值为12位唯一数字。您可以有一个BIGINT IDENTITY列,该列将生成唯一的BIGINT值,但默认情况下它们不是12位数字 当然,基于BIGINT标识,您可以创建一个计算列,如下所示: ALTER TABLE dbo.YourTable ADD AutoField AS 'XY' + RIGHT('0000000000' + CAST(ID AS VARCHAR(10)), 10) PERSISTED
例如,我希望特定列的默认值为12位唯一数字。您可以有一个
BIGINT IDENTITY
列,该列将生成唯一的BIGINT值,但默认情况下它们不是12位数字
当然,基于BIGINT标识
,您可以创建一个计算列,如下所示:
ALTER TABLE dbo.YourTable
ADD AutoField AS 'XY' + RIGHT('0000000000' + CAST(ID AS VARCHAR(10)), 10) PERSISTED
这样,您将在ID
中自动获得1、2、3、4的值(作为标识值),并在计算的自动字段中自动获得XY0000000001、XY0000000002等值
这几乎是我所知道的唯一的“自动”生成(除了GUID,但它们的长度超过12个字符,而不是数字)
你想在这里做什么?你可以使用带有种子值的bigint
标识10000000000
create table T (id bigint identity(100000000000, 1), Col1 varchar(50))
并使用检查约束来防止您走得太远
alter table T with check add constraint CK_T_ID check (id<1000000000000)
使用检查更改表T添加约束检查ID检查(ID