dbo.UpdateLicenseModule.StoredProcedure.sql
3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
USE [AIADatabaseV5]
GO
/****** Object: StoredProcedure [dbo].[UpdateLicenseModule] Script Date: 2/1/2018 12:15:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Magic Software
-- Create date: 10/12/2010
-- Description: update the module status of a license
-- =============================================
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UpdateLicenseModule]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[UpdateLicenseModule]
GO
CREATE PROCEDURE [dbo].[UpdateLicenseModule] @iLicenseId INT, @sModuleTitle VARCHAR(50), @iStatus INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN TRY
BEGIN TRANSACTION
DECLARE @sErrorStatus CHAR(2) = 'ok'
DECLARE @iModuleId INT
SELECT @iModuleId = ResourceModule.Id FROM ResourceModule INNER JOIN ModuleToLicense ON ResourceModule.Id = ModuleToLicense.ModuleId
WHERE ResourceModule.Title = @sModuleTitle AND ModuleToLicense.LicenseId = @iLicenseId
IF @@ROWCOUNT > 0
BEGIN
UPDATE ModuleToLicense SET Status = @iStatus WHERE LicenseId = @iLicenseId
AND ModuleId = @iModuleId
END
ELSE
BEGIN
INSERT INTO ModuleToLicense (LicenseId, ModuleId, Status)
SELECT @iLicenseId, ResourceModule.Id, @iStatus FROM ResourceModule WHERE ResourceModule.Title = @sModuleTitle
END
COMMIT TRANSACTION
SELECT @sErrorStatus as SPStatus
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION
SELECT Error_Message() as SPStatus
END CATCH
END
GO