Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.58 KB | None | 0 0
  1. CREATE TRIGGER dbo.trg_Contracts_insert ON dbo.Contracts INSTEAD OF INSERT AS
  2. BEGIN
  3. DECLARE @Id INT, @ContractNumber VARCHAR(7), @NumberOfAttempts INT, @AdditionalAttempts INT, @GuessLength INT, @SmallestGuess INT,
  4. @LargestGuess INT, @StartDateTime DATETIME, @EndDateTime DATETIME, @VariableOdds BIT, @PercentOfAttempts FLOAT, @RNGOnly BIT, @HasPrimaryPrize BIT,
  5. @HasSecondaryPrize BIT, @HasDefaultPrize BIT, @HasDemographics BIT, @AttemptsTaken INT
  6.  
  7. OPEN SYMMETRIC key pv_encrypt_prod decryption by certificate cert_pv;
  8.  
  9. DECLARE ContractsCursor CURSOR FOR
  10. SELECT Id, ContractNumber, NumberOfAttempts, AdditionalAttempts, GuessLength, SmallestGuess, LargestGuess, StartDateTime, EndDateTime,
  11. VariableOdds, PercentOfAttempts, RNGOnly, HasPrimaryPrize, HasSecondaryPrize, HasDefaultPrize, HasDemographics, AttemptsTaken
  12. FROM INSERTED;
  13.  
  14. OPEN ContractsCursor
  15.  
  16. FETCH NEXT FROM ContractsCursor INTO @Id, @ContractNumber, @NumberOfAttempts, @AdditionalAttempts, @GuessLength, @SmallestGuess, @LargestGuess,
  17. @StartDateTime, @EndDateTime, @VariableOdds, @PercentOfAttempts, @RNGOnly, @HasPrimaryPrize, @HasSecondaryPrize, @HasDefaultPrize, @HasDemographics, @AttemptsTaken
  18.  
  19. WHILE @@FETCH_STATUS = 0
  20. BEGIN
  21. IF (@Id IS NULL)
  22. BEGIN
  23. INSERT INTO Contracts_base (ContractNumber, NumberOfAttempts, AdditionalAttempts, GuessLength, SmallestGuess, LargestGuess,
  24. StartDateTime, EndDateTime, VariableOdds, PercentOfAttempts, RNGOnly, HasPrimaryPrize, HasSecondaryPrize, HasDefaultPrize, HasDemographics, AttemptsTaken)
  25. VALUES ( @ContractNumber, @NumberOfAttempts, @AdditionalAttempts, @GuessLength, @SmallestGuess, @LargestGuess,
  26. @StartDateTime, @EndDateTime, @VariableOdds, @PercentOfAttempts, @RNGOnly, @HasPrimaryPrize, @HasSecondaryPrize, @HasDefaultPrize, @HasDemographics, @AttemptsTaken)
  27.  
  28. SET @Id = scope_identity()
  29.  
  30. UPDATE Contracts_base
  31. SET NumberOfAttempts = ENCRYPTBYKEY(key_guid('pv_encrypt_prod'), CONVERT(VARCHAR(MAX), @NumberOfAttempts), 1, CONVERT(VARCHAR(MAX), @Id)),
  32. AdditionalAttempts = ENCRYPTBYKEY(key_guid('pv_encrypt_prod'), CONVERT(VARCHAR(MAX), @AdditionalAttempts), 1, CONVERT(VARCHAR(MAX), @Id)),
  33. GuessLength = ENCRYPTBYKEY(key_guid('pv_encrypt_prod'), CONVERT(VARCHAR(MAX), @GuessLength), 1, CONVERT(VARCHAR(MAX), @Id)),
  34. SmallestGuess = ENCRYPTBYKEY(key_guid('pv_encrypt_prod'), CONVERT(VARCHAR(MAX), @SmallestGuess), 1, CONVERT(VARCHAR(MAX), @Id)),
  35. LargestGuess = ENCRYPTBYKEY(key_guid('pv_encrypt_prod'), CONVERT(VARCHAR(MAX), @LargestGuess), 1, CONVERT(VARCHAR(MAX), @Id))
  36. WHERE Id = @Id
  37.  
  38. SELECT Id FROM Contracts_base WHERE @@ROWCOUNT > 0 AND Id = @Id
  39. END
  40. ELSE
  41. BEGIN
  42. SET NOCOUNT ON
  43. SET IDENTITY_INSERT Contracts_base ON
  44. INSERT INTO Contracts_base (Id, ContractNumber, NumberOfAttempts, AdditionalAttempts, GuessLength, SmallestGuess, LargestGuess,
  45. StartDateTime, EndDateTime, VariableOdds, PercentOfAttempts, RNGOnly, HasPrimaryPrize, HasSecondaryPrize, HasDefaultPrize, HasDemographics, AttemptsTaken)
  46. VALUES (@Id, @ContractNumber,
  47. ENCRYPTBYKEY(key_guid('pv_encrypt_prod'), CONVERT(VARCHAR(MAX), @NumberOfAttempts), 1, Convert(varchar(max), @Id)),
  48. ENCRYPTBYKEY(key_guid('pv_encrypt_prod'), CONVERT(VARCHAR(MAX), @AdditionalAttempts), 1, Convert(varchar(max), @Id)),
  49. ENCRYPTBYKEY(key_guid('pv_encrypt_prod'), CONVERT(VARCHAR(MAX), @GuessLength), 1, Convert(varchar(max), @Id)),
  50. ENCRYPTBYKEY(key_guid('pv_encrypt_prod'), CONVERT(VARCHAR(MAX), @SmallestGuess), 1, Convert(varchar(max), @Id)),
  51. ENCRYPTBYKEY(key_guid('pv_encrypt_prod'), CONVERT(VARCHAR(MAX), @LargestGuess), 1, Convert(varchar(max), @Id)),
  52. @StartDateTime, @EndDateTime, @VariableOdds, @PercentOfAttempts, @RNGOnly, @HasPrimaryPrize, @HasSecondaryPrize, @HasDefaultPrize, @HasDemographics,
  53. @AttemptsTaken)
  54.  
  55. SET IDENTITY_INSERT Contracts_base OFF
  56. END
  57.  
  58. FETCH NEXT FROM ContractsCursor INTO @Id, @ContractNumber, @NumberOfAttempts, @AdditionalAttempts, @GuessLength, @SmallestGuess, @StartDateTime, @EndDateTime,
  59. @LargestGuess, @VariableOdds, @PercentOfAttempts, @RNGOnly, @HasPrimaryPrize, @HasSecondaryPrize, @HasDefaultPrize, @HasDemographics, @AttemptsTaken
  60.  
  61. END
  62.  
  63. CLOSE ContractsCursor
  64. DEALLOCATE ContractsCursor
  65.  
  66. CLOSE SYMMETRIC key pv_encrypt_prod
  67. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement