sql-server - 如何在 SQL Server 中要求列中的最小字符数?

标签 sql-server

CREATE TABLE [dbo].[AdminTest] (
    [AdminTestId]  INT            IDENTITY (1, 1) NOT NULL,
    [Title]        NVARCHAR (100) NOT NULL,
    [CreatedBy]    INT            NOT NULL,
    [CreatedDate]  DATETIME       NOT NULL,
    [ModifiedBy]   INT            NOT NULL,
    [ModifiedDate] DATETIME       NOT NULL,
    [TestLevelId]  INT            NOT NULL,
    [TestStatusId] INT            NOT NULL,
    [ExamId]       INT            NOT NULL,
    [Text]         NVARCHAR (MAX) NULL,
    [Sequence]     INT            DEFAULT ((1)) NOT NULL,
    [Release]      NVARCHAR (50)  DEFAULT ((1)) NOT NULL,
    [Version]      ROWVERSION     NOT NULL,
    [Price]        MONEY          DEFAULT ((0)) NOT NULL,
    [ReleaseDate]  DATETIME       NULL,
    [Code]         VARCHAR (10)   DEFAULT (LEFT(newid(), (5))) NOT NULL
);

我将“代码”列设置为默认值,但如何才能使“代码”列的值至少包含 5 个字符?

最佳答案

创建检查约束:

ALTER TABLE AdminTest
    ADD CONSTRAINT CK_AdminTest_Code_Length CHECK (LEN(Code) >= 5);
GO

引用号:CHECK Constraints

关于sql-server - 如何在 SQL Server 中要求列中的最小字符数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26201578/

相关文章:

sql-server - SQL SYNONYM 和性能

PHP/MS SQL Server 显示 sql server 日期时间

截断时的 SQL 触发器

mysql - 如何将一列中的所有行求和到两个连接表中?

sql - 将具有相同名称的列转换为正确的行

sql - 选择查询以在 SQL Server 2008 中将日期格式显示为 DAY MMM DD YYYY

sql - 使用多个类似条件选择查询

sql - 如何从表中获取第一个免费 ID

sql-server - 德尔福 2010、SQL Server 2008、dbExpress。如何分发给最终用户

mysql - 创建一个函数将分隔字符串拆分到表中