我正在添加来自三个字段的计算列。它将是一个 VARCHAR 字段。我需要指定计算列的最大长度。我们如何指定这一点。
ALTER TABLE [MyTable] ADD CustomNumber AS [PGM]+'-'+[GRP]+'-'+[PGMGRPSEQ]
Run Code Online (Sandbox Code Playgroud)
有什么办法可以限制我吗?如果长度超过 10 个字符,我需要提出错误
参考:指定表中的计算列
单程
CREATE TABLE [MyTable]
(
[PGM] VARCHAR(50),
[GRP] VARCHAR(50),
[PGMGRPSEQ] VARCHAR(50),
CustomNumber AS [PGM]+'-'+[GRP]+'-'+[PGMGRPSEQ] PERSISTED CHECK (LEN(CustomNumber) <= 10)
)
Run Code Online (Sandbox Code Playgroud)
或者,如果您不想保留计算列,只需添加重复表达式的检查约束。
CREATE TABLE [MyTable]
(
[PGM] VARCHAR(50),
[GRP] VARCHAR(50),
[PGMGRPSEQ] VARCHAR(50),
CustomNumber AS [PGM]+'-'+[GRP]+'-'+[PGMGRPSEQ],
CHECK (LEN([PGM]+'-'+[GRP]+'-'+[PGMGRPSEQ] ) <= 10)
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2795 次 |
| 最近记录: |