Stored Procedures [dbo].[sp_register_newinvtrtbl]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@invTblnamevarchar(255)255
@tblownernvarchar(128)256
SQL Script
create procedure sp_register_newinvtrtbl(@invTblname varchar(255), @tblowner nvarchar(128))
as
begin
/**
this procedure will be called if a new inventory tree table is registered
in the database table inv_table_map

@param tblname  full qualified table name e.g. ca_itrm.inv_xxx_item
*/

/*}*/

    declare @trgName varchar(64);
    declare @sqlStmt varchar(1024);
    declare @dropTrigStmt varchar(1024);

    set @trgName = 'r_'+  SUBSTRING(@invTblname, 3, LEN(@invTblname)-3);

    if( @tblowner is not null)
        begin -- prefix table name
            set @invTblname = @tblowner + '.' + @invTblname;
        end;

    set @dropTrigStmt = 'drop trigger ' + @trgName ;

    set @sqlStmt = 'create trigger ' + @trgName
     + ' on ' + @invTblname
     + ' after insert '
        + ' as '
        + ' begin '
    + '    update ' + @invTblname + ' set tenant_id=a.tenant_id'
    + '             from ca_agent a , inserted newinv '
    + '             where a.object_uuid = '+ @invTblname + '.object_uuid '
    + '               and ' + @invTblname + '.object_uuid = newinv.object_uuid '
    + '               and ' + @invTblname + '.item_id = newinv.item_id; '
    + ' end;'

    

    -- add trigger to inv table

    if EXISTS (Select * From dbo.sysobjects Where id =
        Object_ID(@trgName) and OBJECTPROPERTY(id, N'IsTrigger')=1)
    begin
        -- trigger exists
    
        execute (@dropTrigStmt);
    end;

    -- create trigger
    EXECUTE  (@sqlStmt);
        

end;
GO
Uses
Used By