database - Writing SQL Insert Function -
i'm trying create sql function add entry table. before adding new user check or user isn't in table already. wrote code, can't save error: invalid use of side-effecting opreator 'insert' within function. last statement included within function must return statement.
create function [dbo].[createuser] ( @username varchar(20), @password varchar(20), @email varchar(50), @passwordquestion varchar(30), @passwordanswer varchar(30) ) returns bit/* datatype */ begin if (exists(select username users username=@username , password=@password)) return 1; else begin insert dbo.users (username, password, email, userid, isapproved, islockedout, isonline, creationdate, passwordquestion, passwordanswer) values (@username, @password, @email, 1, 0, 0, 0, getdate(), @passwordquestion, @passwordanswer); return 0; end end
i'm beginner sql advice great!
in short, functions not allowed make changes sql server object. stored procedures can. minor changes, code sp.
create proc [dbo].[createuser] ( @username varchar(20), @password varchar(20), @email varchar(50), @passwordquestion varchar(30), @passwordanswer varchar(30) ) --returns bit/* datatype */ begin if (exists(select username users username=@username , password=@password)) return 1; else begin insert dbo.users (username, password, email, userid, isapproved, islockedout, isonline, creationdate, passwordquestion, passwordanswer) values (@username, @password, @email, 1, 0, 0, 0, getdate(), @passwordquestion, @passwordanswer); return 0; end end go
and can call thus:
exec dbo.createuser 'jim', 'teddy', 'jim@do.not.email', 'where', 'here';
Comments
Post a Comment