--stored procedures
--parameterized view
use Community_Assist
go
Create proc usp_HRViewProc
@EmployeeKey int
As
Select PersonLastName,
PersonfirstName,
PersonEmail,
EmployeeHireDate,
EmployeeAnnualSalary
From Person p
inner Join Employee e
on p.PersonKey=e.PersonKey
Where EmployeeKey = @EmployeeKey
exec usp_HRViewProc @EmployeeKey=2
Go
--Create hash password function
Alter function fx_hashPassword2
(@seed int, @password nvarchar(50))
returns varbinary(500)
As
Begin
Declare @newPassword nvarchar(70)
set @newPassword =
cast(@seed as nvarchar(20)) + @Password
Declare @hashed varbinary(500)
set @hashed = hashbytes('sha2_512', @newPassword)
return @hashed
End
Select * from businessrule
go
--new person stored procedure
Alter proc usp_NewPerson
@lastName nvarchar(255),
@FirstName nvarchar(255)=null,
@Email nvarchar(255),
@password nvarchar(50),
@AptNumber nvarchar(255)=null,
@Street nvarchar(255),
@City nvarchar(255)='Seattle',
@State nvarchar(255)='WA',
@Zip nvarchar(255),
@HomePhone nvarchar(255)
As
--test to see if person exists
if exists
(Select PersonLastName, PersonEmail From Person
Where PersonLastName=@LastName
And PersonEmail=@Email)
Begin--begin if
Print 'Already registered'
return
End--end if
--create the password hash
Declare @seed int
Set @seed = dbo.fx_GetSeed()
declare @hashedPass varbinary(500)
set @hashedPass = dbo.fx_HashPassword(@seed,@password)
Begin tran --start a transaction
Begin try -- begin try
--insert into person
Insert into Person(
PersonLastName, PersonFirstName,
PersonEmail, PersonPassWord,
PersonEntryDate, PersonPassWordSeed)
Values(@LastName, @FirstName,
@Email, @hashedPass,GetDate(),@seed)
--get the key of the person just inserted
Declare @key int = ident_current('Person')
--insert into PersonAddress
Insert into PersonAddress(
PersonAddressApt,
PersonAddressStreet,
PersonAddressCity, PersonAddressState,
PersonAddressZip, PersonKey)
Values( @AptNumber,@street,@city,@state,@Zip,@key)
Insert into Contact([ContactNumber],
[ContactTypeKey], [PersonKey])
Values (@HomePhone, 1, @Key)
Commit Tran --commit the transaction if no error
End Try
Begin Catch
Rollback Tran
Print Error_Message()
End Catch
exec usp_NewPerson
@lastName = 'Conger',
@FirstName='Steve',
@Email='spconger@gmail.com',
@password='congerPass',
@Street='101 nowhere bld',
@Zip='98122',
@HomePhone='2065551201'
Select * from PersonAddress
Select * from Contact
Wednesday, May 25, 2016
Stored procedures
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment