SQL Server:自动递增十进制列

时间:2016-11-10 10:22:01

标签: sql sql-server auto-increment

我需要在SQL Server 2014中自动增加一个十进制列。

3 个答案:

答案 0 :(得分:1)

您应该告诉我们您想要实现的目标,但是模拟自动递增的十进制列的一种方法是将其定义为计算并连接到自动递增的法线(整数)列。 E.g:

<强>定义:

create table AutoincrementDecimalTest
(
    Id INT NOT NULL IDENTITY(1, 1),
    SomeText NVARCHAR(200) NOT NULL,
    -- you may declare it as persisted, if the extra space is not problem
    AutoincrementDec AS CAST(Id * 0.2 AS NUMERIC(18, 2))
)

当然,正如here指出的那样,某些限制适用于你的表达。

<强>测试

insert into AutoincrementDecimalTest (SomeText) VALUES ('test1'), ('test2')
GO

select * from AutoincrementDecimalTest
GO

答案 1 :(得分:0)

decimal中的声明,但您只能选择整数格式。

CREATE TABLE #Record(id decimal(18,0) identity primary key , name VARCHAR(100))
INSERT INTO #Record( name )SELECT 'name1' UNION ALL SELECT 'name2' SELECT * FROM #Record

答案 2 :(得分:0)

我的实际要求是为我的存储过程的每次调用生成一个版本号。我已经实现了如下。

从外部创建和更新表

create table version(no decimal(2,2)) insert into version(1.0)

以下是我的存储过程的小提取

Update version set no=(select max(no) from version)+1

select no.version,t.* from table t left join version