我創建瞭如下表:如何改進以下存儲過程以驗證電子郵件的語法?
CREATE TABLE TBL_EMAIL
(
ID INT IDENTITY PRIMARY KEY,
EMAIL VARCHAR(25) NOT NULL
);
我想創建一個存儲過程,以檢查是否有新郵件的語法是好的,我只是想掩蓋兩種可能性,如果此郵件還沒有一個「@ 「字符如下:
INSERT INTO TBL_EMAIL (EMAIL)
VALUES ('email.com')
並且如果該電子郵件還沒有相應的點:
INSERT INTO TBL_EMAIL (EMAIL)
VALUES ('[email protected]')
我只是想掩蓋這種情況下,CR eate一個存儲過程時,有一個插入到被激活或更新
CREATE TRIGGER Tr_Verify_Email
ON TBL_EMAIL
FOR INSERT,UPDATE
AS
BEGIN
變量聲明的同時,還有一些標誌知道,如果「@」位於第一位置裏面算,
DECLARE @V_COUNT INT,@FLAG INT
DECLARE @V_EMAIL_INSERTED VARCHAR(25)
SET @V_COUNT = 1
SET @FLAG = 0
SELECT @V_EMAIL_INSERTED = EMAIL FROM INSERTED;
WHILE(@V_COUNT < LEN(@V_EMAIL_INSERTED)) BEGIN
IF(SUBSTRING(@V_EMAIL_INSERTED,@V_COUNT,1)='@' AND @V_COUNT > 4) BEGIN
SET @FLAG = @FLAG + 1
END
SET @V_COUNT = @V_COUNT + 1
END
回滾事務時使用的電子郵件和「@」在第一位置,
IF(@FLAG <> 1) BEGIN
RAISERROR('Invalid Email',16,1)
ROLLBACK TRANSACTION
END
END
然而,這是我第一次的做法,但據我所知,有很多缺失的C Ases和無效的電子郵件,因此我想感謝提高我的邏輯的建議,只允許使用我認爲是[email protected]
的撥款結構的電子郵件,感謝您的支持。
。 。我修復了標籤。憑藉您的聲譽水平,您應該知道避免不兼容的數據庫標記,並將適當的軟件放在問題上。 –
對不起,感謝修復,我非常感謝支持。 – neo33