SQL Server:标识列必须是数据类型int,bigint,smallint,tinyint,decimal或numeric

时间:2018-02-14 07:02:11

标签: sql-server

我使用SQL Server 2017 Management Studio,我尝试创建加密列(总是加密任务),我收到错误

  

标识列必须是数据类型int,bigint,smallint,tinyint,decimal或numeric,其标度为0,未加密,并且约束为不可为空。

我的表是:

create table testDB.dbo.Login
(
    ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
    Username varchar(20) NOT NULL UNIQUE,
    Password varchar(128) NOT NULL,
    Email varchar(100) Not Null UNIQUE
);

create table testDB.dbo.Admin
(
    ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
    Admin INT NOT NULL FOREIGN KEY REFERENCES testDB.dbo.Login(ID)
);

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

对于格式标识密钥,请尝试:

" padded_id"是我在计算列示例中使用的名称。

create table table
(
   id int IDENTITY(1,1) NOT NULL,
   padded_id AS (right('0000000000' + CONVERT(varchar(10),id),10)) PERSISTED 
    NOT NULL,
   other columns....
)