2017-10-19 6 views
-1

私はSQL Serverマネージャで行う必要がある割り当てがあります。SQLの制約の電子メール

私はデータベースとUserという名前のテーブルを持っています。ユーザーの下にはe-mailという列があります。

割り当ては、列の電子メールに影響を与えるそのテーブルに対する新しい制約を作成することです。

は、唯一の '@' と最小1このような(など!"#¤%、)<などの特殊文字であることを許可されていない '.'

がなければなりません - これには '@'と '。'は含まれません。

私はいくつかの異なることを試しましたが、動作しないようです。また、私は初心者であることに注意する必要があります。あなたの助け

+8

少なくとも*ショー*あなたの試み。私たちに宿題の質問を投げ捨て、私たちがすべての仕事をすることを期待することは誰にとっても大したことではありません。また、試行がどのようにうまくいかないかを記述してください - エラーを生成しますか?無効な値を挿入しますか?有効な値の挿入を防止しますか?他に何か? –

+0

あなたの現在のコードの試行を私たちに教えてください。 – jarlh

+0

Iveはこれを試しました( '%[email protected]__%.__%'のような[e-mail]) メールを入力しようとすると、使用できないとわかりません。 –

答えて

0

ため

おかげで別の方法としては、すべての与えられた条件を満たしているかどうかを確認しますこれは、このように、制約を使用してテーブルを作成することができます。表は

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

[email protected]#com

一部@コム

などいくつかの@ COM @いくつかの@いくつか...

いくつかの例外が入力されました

[email protected]

[email protected]

[email protected]

[email protected]

など....

あなたはすでにテーブルを持っている場合は、

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 
+0

こんにちは、ありがとうございます、あなたが書いたことを理解していませんxD 私はそれを制約に追加しなくてはなりません。テーブルの新しい制約を作成し、クエリの中にそのようなものを書き込まないでください。 –

+0

私はあなたですあなたのテーブルを作成するには、すでにこのメソッドを使用して電子メールを受け取ってください –

+0

最新の編集をご覧ください –

関連する問題