Writing SQL Insert Function
In short, Functions are not allowed to make any changes to ANY SQL Server object. Stored procedures can. With minor changes, your code is now an SP.
CREATE PROC [dbo].[CreateUser] ( @Username varchar(20), @Password varchar(20), @Email varchar(50), @PasswordQuestion varchar(30), @PasswordAnswer varchar(30) )--RETURNS bit/* datatype */AS BEGIN if (Exists(Select Username from Users where Username=@Username and Password=@Password)) return 1; else begin INSERT INTO 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 ENDGO
And you can call it thus:
exec dbo.CreateUser 'Jim', 'Teddy', 'jim@do.not.email', 'Where', 'Here';