Sql server 我是否可以将列更改为第一个字符的大写ascii值,而不必删除并重新创建表?
这是我到目前为止的DDL。但现在我意识到在用数据填充表格后,我需要存储大写的asciiSql server 我是否可以将列更改为第一个字符的大写ascii值,而不必删除并重新创建表?,sql-server,Sql Server,这是我到目前为止的DDL。但现在我意识到在用数据填充表格后,我需要存储大写的ascii CREATE TABLE [dbo].[Phrase] ( [PhraseId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL, [English] NVARCHAR (MAX) NOT NULL, [EnglishAscii] AS (ascii([English])) PERSISTED, PRIMARY KEY CLUSTER
CREATE TABLE [dbo].[Phrase]
(
[PhraseId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL,
[English] NVARCHAR (MAX) NOT NULL,
[EnglishAscii] AS (ascii([English])) PERSISTED,
PRIMARY KEY CLUSTERED ([PhraseId] ASC))
);
有人能告诉我是否可以更改
EnglishAscii
列以存储大写[英语]的ascii值
列,我是否能够在不必删除并重新创建它的情况下对表进行更改?将英文列更改为大写
并查找ASCII
值
试试这个
CREATE TABLE [dbo].[Phrase] (
[PhraseId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL,
[English] NVARCHAR (MAX) NOT NULL,
[EnglishAscii] AS (ascii(UPPER([English]))) PERSISTED,
PRIMARY KEY CLUSTERED ([PhraseId] ASC)
);
如果要更改现有的计算列,则必须删除该计算列并重新创建它
ALTER TABLE dbo.Phrase
DROP COLUMN EnglishAscii
ALTER TABLE dbo.Phrase
ADD EnglishAscii AS (ascii(UPPER([English]))) PERSISTED
为什么不在存储过程或应用程序中进行转换?存储两次是没有意义的,但他只要求大写字母,而不是整个字母word@mohan111-Prdp是正确的。这将只给出第一个的大写字母character@Prdp-我可以将此作为对现有表的动态更改/更新来执行吗。如果是这样的话,我怎么能改变这个列?@ MhanH111——即使现在我只考虑第一个字母,而我把样本数据插入到上面的表中。我得到的错误“列”EngasASCII“不能修改,因为它不是一个计算列,或者是一个联合运算符的结果”。