How to write an if else statement to insert a query to display an error in a stored procedure

how to write an if else statement to insert a query to display an error in a stored procedure

below is my stored procedure. I want to show an error message when the student_id already inserted is inserted again. Student_id is the primary key, so its display error in my code, but I don’t know how to get this error and show .... how to make friends, help me. ....

ALTER PROCEDURE [dbo].[spinsertstudentapplication] 
    -- Add the parameters for the stored procedure here
    @Student_id             nvarchar(50),   
    @Select_Country         nvarchar(50),
    @Select_State           nvarchar(50),
    @Select_Franchise       nvarchar(50),
    @Select_Sensei          nvarchar(50),
    @Enter_Student_Name     nvarchar(50),
    @Enter_Student_Address  nvarchar(50),
    @Students_Father_Name   nvarchar(50),
    @Student_DOB            datetime,
    @Gender                 bit,
    @Group                  nvarchar(50),
    @Enter_Kyu              nvarchar(50)
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here 
    insert into StudentApplication(Student_id,Select_Country,Select_State,Select_Franchise,Select_Sensei,Enter_Student_Name,Enter_Student_Address,Students_Father_Name,Student_DOB,Gender,[Group],Enter_Kyu)values(@Student_id,@Select_Country,@Select_State,@Select_Franchise,@Select_Sensei,@Enter_Student_Name,@Enter_Student_Address,@Students_Father_Name,@Student_DOB,@Gender,@Group,@Enter_Kyu)

END
+3
source share
3 answers

(int/) Sp , . Front End. @RecordExist bit 1, , 0. SqlCommand Sp. (SqlCommand.Parameters["@RecordExist"].Value)

ALTER PROCEDURE [dbo].[spinsertstudentapplication]   
    -- Add the parameters for the stored procedure here  
    @Student_id             nvarchar(50),     
    @Select_Country         nvarchar(50),  
    @Select_State           nvarchar(50),  
    @Select_Franchise       nvarchar(50),  
    @Select_Sensei          nvarchar(50),  
    @Enter_Student_Name     nvarchar(50),  
    @Enter_Student_Address  nvarchar(50),  
    @Students_Father_Name   nvarchar(50),  
    @Student_DOB            datetime,  
    @Gender                 bit,  
    @Group                  nvarchar(50),  
    @Enter_Kyu              nvarchar(50),
    @RecordExist            bit output  -- newly added parameter
 AS  
 BEGIN  
     -- SET NOCOUNT ON added to prevent extra result sets from
     -- interfering with SELECT statements.
     SET NOCOUNT ON;

     -- Insert statements for procedure here 

If Exists (Select * from StudentApplication where Student_id = @Student_id)
   Begin
      Select @RecordExist = 1
      return
   End

Else
  Begin
      insert into StudentApplication (Student_id, Select_Country, Select_State,  Select_Franchise, Select_Sensei, Enter_Student_Name, Enter_Student_Address, Students_Father_Name, Student_DOB, Gender, [Group], Enter_Kyu)

      Select @Student_id, @Select_Country, @Select_State, @Select_Franchise, @Select_Sensei, @Enter_Student_Name, @Enter_Student_Address, @Students_Father_Name, @Student_DOB, @Gender, @Group, @Enter_Kyu

      Select @RecordExist = 0
      return
  End

END
0

SP:

@ErrorOutput INT OUTPUT

:

IF EXISTS (SELECT 1 FROM StudentApplication WHERE Student_id=@Student_id)
    SET @ErrorOutput = -1;
    RETURN @ErrorOutput;
ELSE
    -- Insert statement
0

"codeka" , , . .

-, 0 ( , ).

-, , , . . - -:

if exists (select 1 from StudentApplication where Student_ID = @Student_ID)
begin
  raiserror('Student ID already exists.', 16, 1)
  return 1 -- Your caller would need to know that 1 identifies existing record
end

, T-SQL raiserror, , proc #/VB.NET/etc. , raiserror proc ( ) .

, , , , ( ; # , SqlException, ).

, , .

#, . ( # proc ). SqlExceptions. State Number SqlException . , , ( ), Number 50 000 ( ).

0

Source: https://habr.com/ru/post/1753110/


All Articles