2016-05-24 18 views
-3
SELECT COUNT(Student_ID) AS 'StudentCount' 
FROM CourseSemOne 
WHERE Student_ID =1; 

このID(Student_ID=1)には2つの値しか追加しません。管理者がこのIDに2つ以上の値を追加すると、「申し訳ありませんが、2つ以上の値を追加することはできません」というメッセージが表示されます。(SQL)のカウント関数とIF条件

+1

ようこそStackOverflow!もう少し私たちに伝える必要があると思います。そのクエリの問題は何ですか?これは 'CourseSemOne'内の' Student_ID'が '1'のレコードの数を示します。だから大丈夫?複数の場合は、メッセージを表示してください。または、「管理者」が別の管理者を追加したい場合は、メッセージを表示してください。 –

+0

データベースはクエリに使用されます。ユーザーや他のUIタスクにメッセージを表示するために使用することはできません。 –

+0

はい私は知っているsir ...私はC#とバックエンド私はSQLを使用しています....今私は問題が...私はID = 1 ....の2行だけを挿入したいIDを制限する方法SQLで? @RenéVogt –

答えて

0

create table student (id int) 
go 

insert into student (id) 
select 1 
union 
select 2 


declare @value int = 3 

IF EXISTS 
(
select 1 
from student 
where id = @value 
Group by id 
having COUNT(id) > 1 
) 
BEGIN 
     RAISERROR('you cannot add more than two values',16,1); 
     RETURN; 
END 
ELSE 
BEGIN 
    INSERT INTO student (ID) 
    SELECT @value 
END 
+0

ありがとうございました。私は@bmsqldevを試しています –

+0

いいえサークルしません@bmsqldev –

+0

希望の出力値が2回以上挿入されたときにエラーをスローしている場合、上記のコードは正しいです。私はms-sql 2012でそれをチェックしました。 – bmsqldev

0

以下のようにしてみStudent_ID columnで重複したエントリを防ぐための最善の方法は、その列にUNIQUE CONSTRAINTまたはUNIQUE INDEXを置くことです。

誰かがduplicateStudent_IDを作成しようとするたびに、アプリケーションが必要なテキストを表示していするための最良の方法は、アプリケーションでconstraint violationエラーをキャッチし、代わりにカスタムエラーメッセージを表示することです。

+0

私は重複していることを頼んでいません... @ Tab –

+0

作業していません@bmsqldev –

+0

あなたはテーブルデータで書いたコードを表示できますか? – bmsqldev