我需要一些帮助在 SQL Server Management Studio 中使用 CONSTRAINT CHECK 验证电子邮件

问题描述 投票:0回答:0

我为我糟糕的英语道歉

我必须使用

CONSTRAINT CHECK
验证电子邮件,它有点“有效”但根本不起作用,如果我放
@hotmail
它会添加邮件,如果我放
@1234
它不会添加它,但是如果我输入
@hotmail1234
它也添加了电子邮件,我该如何解决?

CREATE TABLE proveedores
(
    id_Proveedores INT IDENTITY (1,1),
    nit_Cedula INT NOT NULL, 
    nombre_Proveedor VARCHAR (50) NOT NULL,
    correo VARCHAR (50) NOT NULL,
    direccion VARCHAR (50) NOT NULL,
    telefono VARCHAR (50) NOT NULL,
    estado_Proveedor bit NOT NULL DEFAULT 0,
    observacion VARCHAR (255),

    CONSTRAINT PK_id_Productos PRIMARY KEY (id_Proveedores), 
    CONSTRAINT UC_proveedores UNIQUE (nit_Cedula, nombre_Proveedor, correo, telefono),
    
    CONSTRAINT CH_cedula_proveedor CHECK (nit_Cedula LIKE '%[0-9]%'),
    CONSTRAINT CH_nombre_proveedor CHECK (nombre_Proveedor NOT LIKE '%[^a-zA-Z ]%'),
    CONSTRAINT CH_correo_proveedor CHECK (correo like '%@%'+'%[^0-9]%'+'.'),
    CONSTRAINT CH_direccion CHECK (direccion LIKE '%[a-zA-Z]%'+'% %'+'[%0-9%] '+'%#[0-9]%')
)

INSERT INTO proveedores (nit_Cedula, nombre_Proveedor, correo, direccion, telefono, observacion)
VALUES (123456, 'Colantasabe' , 'jsdqkas_123jd@hotmail123.' , 'crra 23 #128', '(604)5224864', 'proveedor de xxxxxxx')

这样,即使在 hotmail 末尾有 123,代码也会添加邮件,有什么修复方法吗?

我尝试使用 chatGPT,以及我在互联网上找到的一堆语法变体

sql sql-server validation constraints
© www.soinside.com 2019 - 2024. All rights reserved.