我的 table 有这种结构。
CREATE TABLE [dbo].[Word] (
[WordId] VARCHAR (20) NOT NULL,
[CategoryId] INT DEFAULT ((1)) NOT NULL,
PRIMARY KEY CLUSTERED ([WordId] ASC),
);
我想要做的是添加一个名为
Ascii
的列,其定义为 (ASCII([WordId]))
有没有办法可以添加它,然后在此列 + WordId + CategoryId 上创建索引?我也可以这样做并根据我已有的数据自动更新吗?
最佳答案
您可以通过制作计算列 persisted
来做到这一点
来自 MSDN
CREATE TABLE [dbo].[Word]
(
[WordId] VARCHAR (20) NOT NULL,
[CategoryId] INT DEFAULT ((1)) NOT NULL,
[Ascii] as (ASCII([WordId])) persisted,
PRIMARY KEY CLUSTERED ([WordId] ,[CategoryId],[Ascii] ),
);
要通过添加计算列来更改表,请使用此
ALTER TABLE [dbo].[Word] ADD [Ascii] AS (ASCII([WordId])) persisted;
关于sql - 我可以在计算列上创建索引吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36966138/