Click here to Skip to main content
15,895,084 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi All

Here i am facing problem with insert two table in store procedure

my Code is:


SQL
create proc [dbo].[Insert_StaffMaster_DeviceInfo_SP]
(
@UserIdN int,
@EmpCodeC nvarchar(15),
@empnamec varchar(50),
@deptcodec varchar(50),
@DesigCodeC varchar(50),
@seccodec varchar(50),
@Dojd smalldatetime,
@TerminateDateD smalldatetime,
@DOB smalldatetime,@CatgCodeC varchar(50),
@Gender nvarchar(1),@Photo nvarchar(255),
@LocationC nvarchar(150),@ShiftGroupCodeC varchar(10),
@NricWPNoC varchar(15),
@Privilege varchar(50),
@Password nvarchar(50),
@Enabled nvarchar(50),
@CardNumber nvarchar(MAX) 
)
as
begin
if not exists(select UserIdN from StaffMaster where UserIdN=@UserIdN)
insert into StaffMaster (UserIdN,EmpCodeC,empnamec,deptcodec,DesigCodeC,seccodec,Dojd,TerminateDateD,DOB,CatgCodeC,Gender,Photo,LocationC,ShiftGroupCodeC,NricWPNoC) values (@UserIdN,@EmpCodeC,@empnamec,@deptcodec,@DesigCodeC,@seccodec,@Dojd,@TerminateDateD,@DOB,@CatgCodeC,@Gender,@Photo,@LocationC,@ShiftGroupCodeC,@NricWPNoC)
insert into  Device_StaffFP(UserIDN,Privilege,Password,Enabled,CardNumber) values (@UserIDN,@Privilege,@Password,@Enabled,@CardNumber)
else 
update StaffMaster set UserIdN=@UserIdN,EmpCodeC=@EmpCodeC,empnamec=@empnamec,deptcodec=@deptcodec,DesigCodeC=@DesigCodeC,seccodec=@seccodec,Dojd=@Dojd,TerminateDateD=@TerminateDateD,DOB=@DOB,CatgCodeC=@CatgCodeC,Gender=@Gender,Photo=@Photo,LocationC=@LocationC,ShiftGroupCodeC=@ShiftGroupCodeC,NricWPNoC=@NricWPNoC where UserIdN=@UserIdN
update Device_StaffFP set UserIDN=@UserIDN,Privilege=@Privilege,Password=@Password,Enabled=@Enabled,CardNumber=@CardNumber where UserIDN=@UserIDN
end


when i try this i got error that is,

Incorrect syntax near the keyword 'else'

.

and one more this shall i use this query for Updating ?

Thank You !
Posted

1 solution

your if block contains more than 1 statement so you have to wrap them between BEGIN....END

IF not exists(....)
BEGIN

Insert statement 1
Insert statement 2
END
ELSE
BEGIN
update statement 1
update statement 2
END
 
Share this answer
 
Comments
prasanna.raj 13-Aug-14 2:03am    
i Got same error

Incorrect syntax near the keyword 'else' ...
Gupta Poonam 13-Aug-14 5:46am    
i have tried it on sample tables... you can check the below code its working.

create proc [dbo].[CommentsInsertTest]
(
@CommentID INT,
@ParaID INT,
@Comment VARCHAR(MAX),
@CreatedOn DATETIME,
@EditedOn DATETIME,
@CreatedBy INT,
@EditedBy INT,
@IsActive BIT
)
as

begin

if not exists(select CommentID from Comments where CommentID=@CommentID)
BEGIN
insert into Comments(ParaID,Comment,CreatedOn,EditedOn,CreatedBy,EditedBy,IsActive) values (@ParaID,@Comment,@CreatedOn,@EditedOn,@CreatedBy,@EditedBy,@IsActive)
insert into AdditionalComment(Comment,CreatedBy,ModifiedBy) values (@Comment,@CreatedBy,@EditedBy)
END
else
BEGIN
update Comments set Comment=@Comment,EditedOn=@EditedOn,EditedBy=@EditedBy where CommentID=@CommentID
update AdditionalComment set Comment=@Comment,ModifiedBy=@EditedBy where AddCommentID=@CommentID
END
end
prasanna.raj 14-Aug-14 3:02am    
sure i ll try..

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900