Sql server 在SQL Server中,是否有一种方法可以将计算列定义为等于其中一列的第一个字符的ASCII值?

Sql server 在SQL Server中,是否有一种方法可以将计算列定义为等于其中一列的第一个字符的ASCII值?,sql-server,Sql Server,我有一个简单的表格,其中包含: CREATE TABLE [dbo].[Word] ( [WordId] VARCHAR (20) NOT NULL, [CategoryId] INT DEFAULT ((1)) NOT NULL, PRIMARY KEY CLUSTERED ([WordId] ASC), ); 是否可以创建一个新列,自动保存我可以通过SELECT访问的WordId的第一个字符的ASCII值?我对SQL不是很确定,但我

我有一个简单的表格,其中包含:

CREATE TABLE [dbo].[Word] (
    [WordId]       VARCHAR (20) NOT NULL,
    [CategoryId]   INT          DEFAULT ((1)) NOT NULL,
    PRIMARY KEY CLUSTERED ([WordId] ASC),
);

是否可以创建一个新列,自动保存我可以通过SELECT访问的WordId的第一个字符的ASCII值?我对SQL不是很确定,但我阅读了有关计算列的内容,并且我想知道是否可以基于另一列的值填充列的默认值。

T-SQL
ASCII
函数将获取字符表达式的第一个字符的ASCII代码。使用该函数,可以如下定义计算列(我将其命名为“Ascii”):

[Ascii] as (ASCII([WordId]))
完整的表定义将变成:

CREATE TABLE [dbo].[Word] (
    [WordId]       VARCHAR (20) NOT NULL,
    [CategoryId]   INT          DEFAULT ((1)) NOT NULL,
    [Ascii]        as (ASCII([WordId])),
    PRIMARY KEY CLUSTERED ([WordId] ASC),
);
示例结果:

INSERT INTO [Word] ([WordId], [CategoryId]) SELECT 'Testing', 1

由该插入创建的记录在
Ascii
列中的值为84。

Yep,这是正确的。我将编辑答案。谢谢@MartinSmith。