2016-04-30 27 views
1

我有一个包含字一个简单的表:在SQL Server中有没有一种方法可以将计算列定义为等于其中一列的第一个字符的ASCII值?

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

是否有可能创建一个新的列自动保存的wordID的第一个字符,我可以使用SELECT访问的ASCII值?我对SQL不是很确定,但是我阅读了计算列,还想知道是否可以根据另一列的值填充列的默认值。

回答

3

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.

+0

是,t帽子是正确的。我会编辑答案。感谢@MartinSmith。 –

相关问题