CREATE TABLE [dbo].[csm_object]
(
[id] [int] NOT NULL,
[flag] [int] NOT NULL,
[uuid] [binary] (16) NOT NULL,
[name] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL,
[dname] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL,
[creation_user] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CS_AS NULL,
[class] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE trigger rule_i_del_so_csm_object
on csm_object
after delete
as
begin
declare @_obj_uuid binary(16);
declare @_cms_class_id integer;
DECLARE mycur CURSOR
FOR select class, uuid from deleted
OPEN mycur
FETCH NEXT FROM mycur INTO @_cms_class_id, @_obj_uuid
WHILE @@FETCH_STATUS = 0
BEGIN
execute proc_i_del_so_csm_object @_obj_uuid, @_cms_class_id;
FETCH NEXT FROM mycur INTO @_cms_class_id, @_obj_uuid;
END
CLOSE mycur
DEALLOCATE mycur
end;
GO
CREATE trigger rule_i_new_so_csm_object
on csm_object
after insert
as
declare @_obj_uuid binary(16);
declare @_cms_class_id integer;
declare @_user nvarchar(255);
begin
select @_obj_uuid = (select uuid from inserted);
select @_cms_class_id = (select class from inserted);
select @_user = (select creation_user from inserted);
execute proc_i_new_so_csm_object @_obj_uuid, @_cms_class_id, @_user;
end;
GO
CREATE trigger rule_upd_so_csm_object
on csm_object
after update
as
begin
declare @_old_uuid binary(16);
declare @_new_uuid binary(16);
declare @_new_csm_class_id integer;
declare @_old_cms_class_id integer;
declare @_user nvarchar(255);
DECLARE mycur CURSOR LOCAL
FOR select deleted.uuid, inserted.uuid, inserted.class, deleted.class, inserted.creation_user
from inserted, deleted
where inserted.id= deleted.id
OPEN mycur
FETCH NEXT FROM mycur INTO @_old_uuid, @_new_uuid, @_new_csm_class_id,
@_old_cms_class_id, @_user;
WHILE @@FETCH_STATUS = 0
BEGIN
execute proc_upd_so_csm_object @_old_uuid, @_new_uuid, @_new_csm_class_id,
@_old_cms_class_id, @_user;
FETCH NEXT FROM mycur INTO @_old_uuid, @_new_uuid, @_new_csm_class_id,
@_old_cms_class_id, @_user;
END
CLOSE mycur
DEALLOCATE mycur
end;
GO
ALTER TABLE [dbo].[csm_object] ADD CONSTRAINT [XPKcsm_object] PRIMARY KEY CLUSTERED ([id]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [csm_object_idx_01] ON [dbo].[csm_object] ([class]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [xie2csm_object] ON [dbo].[csm_object] ([name]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [csm_object_idx_02] ON [dbo].[csm_object] ([uuid]) ON [PRIMARY]
GO
GRANT SELECT ON [dbo].[csm_object] TO [ams_group]
GRANT SELECT ON [dbo].[csm_object] TO [ca_itrm_group]
GRANT INSERT ON [dbo].[csm_object] TO [ca_itrm_group]
GRANT DELETE ON [dbo].[csm_object] TO [ca_itrm_group]
GRANT UPDATE ON [dbo].[csm_object] TO [ca_itrm_group]
GRANT SELECT ON [dbo].[csm_object] TO [ca_itrm_group_ams]
GRANT SELECT ON [dbo].[csm_object] TO [upmuser_group]
GO