--stored procedures
--register a new person
--check to see if person exists
--pass in all the info we need
--insert to person
-- created seed hash the password
--insert into personAddress
--insert into person Contact
--all or none happen
--or 1 = 1;Drop Table Student--
--version 1
Create procedure usp_Registration
@PersonLastName nvarchar(255),
@PersonFirstName nvarchar(255),
@PersonEmail nvarchar(255),
@PersonPassWord nvarchar(20),
@PersonAddressApt nvarchar(255)=null,
@PersonAddressStreet nvarchar(255),
@PersonAddressCity nvarchar(255) = 'Seattle',
@PersonAddressState nchar(2)='Wa',
@PersonAddressZip nchar(9),
@HomePhone nvarchar(255)=null,
@WorkPhone nvarchar(255)=null
As
Declare @seed int
Set @seed = dbo.fx_GetSeed()
Declare @pass varbinary(500)
set @pass=dbo.fx_HashPassword(@seed, @PersonPassword)
Insert into Person(
PersonLastName,
PersonFirstName,
PersonEmail,
PersonPassWord,
PersonEntryDate,
PersonPassWordSeed)
Values(
@PersonLastName,
@PersonFirstName,
@PersonEmail,
@pass,
GetDate(),
@Seed)
Declare @PersonKey int
Set @personKey = ident_current('Person')
Insert into PersonAddress(
PersonAddressApt,
PersonAddressStreet,
PersonAddressCity,
PersonAddressState,
PersonAddressZip,
PersonKey)
Values(
@PersonAddressApt,
@PersonAddressStreet,
@PersonAddressCity,
@PersonAddressState,
@PersonAddressZip,
@PersonKey)
IF Not @HomePhone is null
Begin
Insert into Contact(ContactNumber, ContactTypeKey, PersonKey)
Values(@HomePhone, 1, @personKey)
End
IF Not @WorkPhone is null
Begin
Insert into Contact(ContactNumber, ContactTypeKey, PersonKey)
Values(@WorkPhone, 2, @personKey)
End
go
exec usp_Registration
@PersonLastName='Rezenor',
@PersonFirstName='Trent',
@PersonEmail='tresenor@gmai;.com',
@PersonPassWord='rPass',
@PersonAddressStreet='10010 NIN South',
@PersonAddressCity='Renton',
@PersonAddressZip='98010',
@HomePhone='3605551356'
go--version 2
Alter procedure usp_Registration
@PersonLastName nvarchar(255),
@PersonFirstName nvarchar(255),
@PersonEmail nvarchar(255),
@PersonPassWord nvarchar(20),
@PersonAddressApt nvarchar(255)=null,
@PersonAddressStreet nvarchar(255),
@PersonAddressCity nvarchar(255) = 'Seattle',
@PersonAddressState nchar(2)='Wa',
@PersonAddressZip nchar(9),
@HomePhone nvarchar(255)=null,
@WorkPhone nvarchar(255)=null
As
Declare @seed int
Set @seed = dbo.fx_GetSeed()
Declare @pass varbinary(500)
set @pass=dbo.fx_HashPassword(@seed, @PersonPassword)
Begin try--
Begin tran
Insert into Person(
PersonLastName,
PersonFirstName,
PersonEmail,
PersonPassWord,
PersonEntryDate,
PersonPassWordSeed)
Values(
@PersonLastName,
@PersonFirstName,
@PersonEmail,
@pass,
GetDate(),
@Seed)
Declare @PersonKey int
Set @personKey = ident_current('Person')
Insert into PersonAddress(
PersonAddressApt,
PersonAddressStreet,
PersonAddressCity,
PersonAddressState,
PersonAddressZip,
PersonKey)
Values(
@PersonAddressApt,
@PersonAddressStreet,
@PersonAddressCity,
@PersonAddressState,
@PersonAddressZip,
@PersonKey)
IF Not @HomePhone is null
Begin
Insert into Contact(ContactNumber, ContactTypeKey, PersonKey)
Values(@HomePhone, 1, @personKey)
End
IF Not @WorkPhone is null
Begin
Insert into Contact(ContactNumber, ContactTypeKey, PersonKey)
Values(@WorkPhone, 2, @personKey)
End
Commit tran
End try
Begin catch
Rollback tran
print Error_Message()
return -1
End catch
exec usp_Registration
@PersonLastName='Rogers',
@PersonFirstName='Tina',
@PersonEmail='tresenor@gmai;.com',
@PersonPassWord='rPass',
@PersonAddressStreet='1001 somewhere South',
@PersonAddressCity='Seattle',
@PersonAddressZip='98010',
@HomePhone='3605551356'
go
Select * from Person
Select * from PersonAddress
Select * from Contact
go
Alter procedure usp_Registration
@PersonLastName nvarchar(255),
@PersonFirstName nvarchar(255),
@PersonEmail nvarchar(255),
@PersonPassWord nvarchar(20),
@PersonAddressApt nvarchar(255)=null,
@PersonAddressStreet nvarchar(255),
@PersonAddressCity nvarchar(255) = 'Seattle',
@PersonAddressState nchar(2)='Wa',
@PersonAddressZip nchar(9),
@HomePhone nvarchar(255)=null,
@WorkPhone nvarchar(255)=null
As
If not exists
(Select PersonKey from Person
Where PersonEmail = @personEmail)
Begin
Declare @seed int
Set @seed = dbo.fx_GetSeed()
Declare @pass varbinary(500)
set @pass=dbo.fx_HashPassword(@seed, @PersonPassword)
Begin try--
Begin tran
Insert into Person(
PersonLastName,
PersonFirstName,
PersonEmail,
PersonPassWord,
PersonEntryDate,
PersonPassWordSeed)
Values(
@PersonLastName,
@PersonFirstName,
@PersonEmail,
@pass,
GetDate(),
@Seed)
Declare @PersonKey int
Set @personKey = ident_current('Person')
Insert into PersonAddress(
PersonAddressApt,
PersonAddressStreet,
PersonAddressCity,
PersonAddressState,
PersonAddressZip,
PersonKey)
Values(
@PersonAddressApt,
@PersonAddressStreet,
@PersonAddressCity,
@PersonAddressState,
@PersonAddressZip,
@PersonKey)
IF Not @HomePhone is null
Begin
Insert into Contact(ContactNumber, ContactTypeKey, PersonKey)
Values(@HomePhone, 1, @personKey)
End
IF Not @WorkPhone is null
Begin
Insert into Contact(ContactNumber, ContactTypeKey, PersonKey)
Values(@WorkPhone, 2, @personKey)
End
Commit tran
End try
Begin catch
Rollback tran
print Error_Message()
return -1
End catch
end
Else
Begin
print 'person already exists'
End
go
--update Procedure
create proc usp_UpdatePersonInfo
@PersonKey int,
@PersonLastName nvarchar(255),
@PersonFirstName nvarchar(255),
@PersonEmail nvarchar(255),
@PersonAddressApt nvarchar(255)=null,
@PersonAddressStreet nvarchar(255),
@PersonAddressCity nvarchar(255)='Seattle',
@PersonAddressState nchar(2) = 'WA',
@PersonAddressZip nchar(9)
As
Begin try
Begin tran
Update Person
Set PersonLastName =@PersonLastName,
PersonFirstName=@PersonFirstName,
PersonEmail=@PersonEmail
Where Personkey = @PersonKey
Update PersonAddress
set PersonAddressApt=@PersonAddressApt,
PersonAddressStreet=@PersonAddressStreet,
PersonAddressCity=@PersonAddressCity,
PersonAddressState=@PersonAddressState,
PersonAddressZip=@PersonAddressZip
Where PersonKey = @PersonKey
Commit tran
End Try
Begin Catch
Rollback tran
print Error_Message()
End Catch
Select * from Person
exec usp_UpdatePersonInfo
@PersonKey=4,
@PersonLastName='Carmel',
@PersonFirstName='Bob',
@PersonEmail='BobCarmel@gmail.com',
@PersonAddressStreet='213 Walnut Street',
@PersonAddressCity='Bellevue',
@PersonAddressZip='98002'
Select * from PersonAddress where personkey=4
--another way to get a value into a variable
Declare @PersonKeyb int
Select @PersonKeyb = personKey from Person
Where PersonEmail = 'BobCarmel@gmail.com'
print @PersonKeyb
Tuesday, February 21, 2017
Stored Procedures
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment