Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SET LANGUAGE Spanish
- SET NOCOUNT ON
- PRINT CHAR(13) + CHAR(10) --Salto de línea
- GO
- BEGIN TRY
- --¡INDICA UN NOMBRE DE TRANSACCIÓN!
- BEGIN TRANSACTION ConsultaPoliticasBotonAlta
- DECLARE @idComponente AS INT
- DECLARE @listIdRol TABLE (RowNumber INT IDENTITY(1, 1), VALUE INT)
- DECLARE @componenteNombre AS NVARCHAR(256)
- DECLARE @componenteNombreKey AS NVARCHAR(256)
- DECLARE @idVista AS INT
- DECLARE @vistaNombreKey AS NVARCHAR(256)
- DECLARE @idRolActual AS INT
- DECLARE @ocurrenciansEnRolesComponentes AS INT
- DECLARE @loopCount AS INT
- --¡INICIALIZAR ESTAS VARIABLES!
- SET @componenteNombre = 'ConsultaPoliticas.Boton.Alta'
- SET @componenteNombreKey = 'AltaKey'
- SET @idVista = 90
- --¡AÑADIR LOS ROLES AQUÍ!
- INSERT INTO @listIdRol VALUES (5)
- INSERT INTO @listIdRol VALUES (37)
- INSERT INTO @listIdRol VALUES (1156)
- INSERT INTO @listIdRol VALUES (1157)
- PRINT '*** Alta de componente ' + @componenteNombre + ' en la vista ' + CAST(@idVista AS NVARCHAR(256)) + ' ***'
- SELECT @idComponente = IdComponente
- FROM Componentes
- WHERE Nombre = @componenteNombre
- IF @idComponente IS NULL BEGIN
- INSERT INTO Componentes (IdVista, Nombre, NombreKey, Blocked)
- VALUES (@idVista, @componenteNombre, @componenteNombreKey, 0)
- SELECT @idComponente = SCOPE_IDENTITY()
- PRINT '** Insertado componente ' + @componenteNombre + ' en la tabla Componentes con id '
- + CAST(@idComponente AS NVARCHAR(256)) + ' **'
- END
- ELSE BEGIN
- UPDATE Componentes
- SET IdVista = @idVista, Nombre = @componenteNombre, NombreKey = @componenteNombreKey, Blocked = 0
- WHERE IdComponente = @idComponente
- PRINT '** El componente ' + @componenteNombre + ' ya existía en la tabla Componentes con id '
- + CAST(@idComponente AS NVARCHAR(256)) + '. Ha sido modificado según los paramétros de entrada **'
- END
- PRINT '** Comenzando altas en RolesComponentes **'
- SET @loopCount = 1
- WHILE @loopCount <= (SELECT MAX(RowNumber) FROM @listIdRol) BEGIN
- SELECT @idRolActual = VALUE
- FROM @listIdRol
- WHERE RowNumber = @loopCount
- SELECT @ocurrenciansEnRolesComponentes = COUNT(*) FROM RolesComponentes
- WHERE IdRole = @idRolActual AND IdComponente = @idComponente
- IF @ocurrenciansEnRolesComponentes = 0 BEGIN
- INSERT INTO RolesComponentes (IdRole, IdComponente, IsEnabled)
- VALUES (@idRolActual, @idComponente, 1)
- PRINT '* Insertado rol ' + CAST(@idRolActual AS NVARCHAR(256))
- + ' en la tabla RolesComponentes para el compomente ' + @componenteNombre + ' *'
- END
- ELSE BEGIN
- PRINT '* El rol ' + CAST(@idRolActual AS NVARCHAR(256))
- + ' ya existía en la tabla RolesComponentes para el componente ' + @componenteNombre + ' *'
- END
- SET @loopCount = @loopCount + 1
- END
- PRINT '** Finalizadas las altas en RolesComponentes **'
- --¡INDICA UN NOMBRE DE TRANSACCIÓN!
- COMMIT TRANSACTION ConsultaPoliticasBotonAlta
- PRINT '*** Alta completada para el componente: ' + @componenteNombre + ' en la vista ' + @vistaNombreKey + ' ***'
- PRINT CHAR(13) + CHAR(10) --Salto de línea
- END TRY
- BEGIN CATCH
- PRINT '*** Error number: ' + CAST(ERROR_NUMBER() AS NVARCHAR(4)) +
- ', Error message: ' + ERROR_MESSAGE() +
- ', Componente: ' + @componenteNombre + ' ***'
- PRINT CHAR(13) + CHAR(10) --Salto de línea
- --¡INDICA UN NOMBRE DE TRANSACCIÓN!
- ROLLBACK TRANSACTION ConsultaPoliticasBotonAlta
- END CATCH
- SET NOCOUNT OFF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement