我有一個任務,我必須在SQL Server管理器中完成。SQL約束電子郵件
我有一個數據庫和一個名爲User
的表。在用戶名下有一列名爲e-mail
的列。
該任務是爲該表創建一個影響列電子郵件的新約束。
必須有一個唯一的 '@
' 和最小的一個 '.
'
不允許爲任何特殊字符,如(!
,"
,#
,¤
,%
等)< - 這不包括'@'和'。'
我試過一些不同的東西,但似乎無法使它工作。另外它應該被注意到,我是一個初學者。
感謝您的幫助
我有一個任務,我必須在SQL Server管理器中完成。SQL約束電子郵件
我有一個數據庫和一個名爲User
的表。在用戶名下有一列名爲e-mail
的列。
該任務是爲該表創建一個影響列電子郵件的新約束。
必須有一個唯一的 '@
' 和最小的一個 '.
'
不允許爲任何特殊字符,如(!
,"
,#
,¤
,%
等)< - 這不包括'@'和'。'
我試過一些不同的東西,但似乎無法使它工作。另外它應該被注意到,我是一個初學者。
感謝您的幫助
或者你可以用約束創建表,這樣,將檢查是否所有給定的條件滿足。 請您的
更改表中的數據。如果表不存在
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Email varchar(255),
CHECK (len(Email) - len(replace(Email,'@',''))=1 AND len(Email) -
len(replace(Email,'.',''))=1 AND CHARINDEX('!',Email)!>0 AND
CHARINDEX('#',Email)!>0 AND CHARINDEX('%',Email)!>0 AND
CHARINDEX('¤',Email)!>0 AND CHARINDEX('"',Email)!>0)
);
一些拒絕輸入
[email protected]!%#¤com
一些@一些。!%#com
[email protected]%#com
一些@一些@ COM
!一些@一些@ COM
等等
一些例外輸入
等....
如果你已經有一個表,然後
GO
ALTER TABLE [dbo].[Yourtablename] WITH CHECK ADD Constraint EmailConstraint CHECK (((len([Email])-
len(replace([Email],'@','')))=(1) AND (len([Email])-
len(replace([Email],'.','')))=(1) AND charindex('!',[Email])<=(0) AND
charindex('#',[Email])<=(0) AND charindex('%',[Email])<=(0) AND
charindex('¤',[Email])<=(0) AND charindex('"',[Email])<=(0)))
GO
你好,謝謝,但我不明白你寫的是什麼xD 我必須將它添加到約束中,在那裏我爲表創建一個新的約束,而不是像查詢中那樣寫下全部約束 –
我的意思是你可以創建你的表,它已經有一個電子郵件的約束它用這個方法 – 2017-10-20 06:45:37
請看最新的編輯 – 2017-10-20 06:50:51
至少*秀*您嘗試。把作業問題傾倒在我們身上,期望我們做所有的工作對任何人都不是什麼大事。在這些嘗試不起作用的情況下也要描述 - 它們是否會產生錯誤?讓你插入無效值?防止插入有效值?還有別的嗎? –
向我們展示您當前的代碼嘗試。 – jarlh
我試過這個([電子郵件]像'%[email protected]__%.__%') 當我嘗試輸入電子郵件時,它說它不能使用,我不知道爲什麼。 –