usp_copy_properties

Parameters

Parameter Parameter Type Mode Description
@srcTableName nvarchar(max) IN
@dstTableName nvarchar(max) IN

Definition

Copy

CREATE procedure usp_copy_properties(@srcTableName as nvarchar(max), @dstTableName as nvarchar(max))
as
begin
    declare c cursor fast_forward for select  
      'sys.sp_addextendedproperty @name=N''' + ep.name + ''', 
      @value=N''' + replace(cast(ep.value as nvarchar(max)),'''','''''') + ''', 
      @level0type=N''SCHEMA'',
      @level0name=N''DBO'',
      @level1type=N''VIEW'',
      @level1name=N''' + @dstTableName + ''',
      @level2type=N''COLUMN'',
      @level2name=N''' + c.name + ''''
    from 
      sys.extended_properties as ep
      inner join sys.columns as
        on c.object_id=ep.major_id and c.column_id=ep.minor_id
    where
      ep.class=1
    and ep.major_id=OBJECT_ID(@srcTableName)
    and ep.minor_id > 0
    and ep.[name] like N'BB_%'
    ;

    declare @sqlStatement as nvarchar(max);
    open c;
    fetch next from
    into @sqlStatement;

    while @@fetch_status = 0
    begin
      execute (@sqlStatement);

      fetch next from
      into @sqlStatement;
    end;

    close c;
    deallocate c;
end;