IF EXISTS (SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID('[dbo].[getstdfld]') AND type = 'P')
DROP PROCEDURE [dbo].[getstdfld]
GO
create procedure [dbo].[getstdfld] 
@key varchar(100) = default 
 as
begin
set @key = ISNULL(@key,'') 

declare @fldi_tbtypevarchar(10) 
declare @fldi_ord2tagint 
declare @fldi_systemint 
declare @fldi_fieldnamevarchar(50) 
declare @fldi_fieldcaptionnvarchar(100) 
declare @fldi_datatypevarchar(10) 
declare @fldi_identint 
declare @fldi_sizeint 
declare @fldi_decimalint 
declare @fldi_defaultnvarchar(100) 
declare @fldi_hiddenint 
declare @fldi_tbnamevarchar(20) 
declare @fldi_keyvarchar(100) 
declare @fldi_indexvarchar(500) 

declare status1 cursor LOCAL FORWARD_ONLY READ_ONLY for
  select fldi_tbtype,fldi_ord2tag,fldi_system,fldi_fieldname,fldi_fieldcaption,fldi_datatype,fldi_ident,fldi_size,fldi_decimal,
  fldi_default,fldi_hidden,fldi_tbname,fldi_key,fldi_index 
  from ebs_kernel.dbo.pub_fieldinfo_standard    
   
  open status1
  declare @s nvarchar(MAX) 
  set @s='' 
  FETCH NEXT FROM status1 INTO @fldi_tbtype,@fldi_ord2tag,@fldi_system,@fldi_fieldname,@fldi_fieldcaption,@fldi_datatype,@fldi_ident,@fldi_size,@fldi_decimal,
  @fldi_default,@fldi_hidden,@fldi_tbname,@fldi_key,@fldi_index 
  WHILE (@@FETCH_STATUS = 0)
  BEGIN
set @s = N'
if (not exists(select * from ebs_kernel.dbo.pub_fieldinfo_standard where fldi_tbtype='''+@fldi_tbtype+''' and fldi_fieldname='''+@fldi_fieldname+''' and fldi_ord2tag='''+convert(varchar(10),@fldi_ord2tag)+N'''))  
begin
insert into ebs_kernel.dbo.pub_fieldinfo_standard(fldi_tbtype,fldi_ord2tag,fldi_system,fldi_fieldname,fldi_fieldcaption,fldi_datatype,fldi_ident,fldi_size,fldi_decimal,
  fldi_default,fldi_hidden,fldi_tbname,fldi_key,fldi_index) 
values('''+@fldi_tbtype+''','+convert(varchar(10),@fldi_ord2tag)+','+convert(varchar(10),@fldi_system)+','''+
@fldi_fieldname+''','''+@fldi_fieldcaption+''','''+@fldi_datatype+''','+convert(varchar(10),@fldi_ident)+','+convert(varchar(10),@fldi_size)+','+
convert(varchar(10),@fldi_decimal)+','''+@fldi_default+''','+convert(varchar(10),@fldi_hidden)+','''+
@fldi_tbname+''','''+@fldi_key+''','''+@fldi_index+''')
end else '
print @s
set @s=N'
begin
update ebs_kernel.dbo.pub_fieldinfo_standard set 
fldi_system='+convert(varchar(10),@fldi_system)+',
fldi_fieldcaption='''+@fldi_fieldcaption+''',
fldi_datatype='''+@fldi_datatype+''',
fldi_ident='+convert(varchar(10),@fldi_ident)+',
fldi_size='+convert(varchar(10),@fldi_size)+',
fldi_decimal='+convert(varchar(10),@fldi_decimal)+',
  fldi_default='''+@fldi_default+''',
  fldi_hidden='+convert(varchar(10),@fldi_hidden)+',
  fldi_tbname='''+@fldi_tbname+''',
  fldi_key='''+@fldi_key+''',
  fldi_index='''+@fldi_index+'''
where fldi_tbtype='''+@fldi_tbtype+''' and fldi_ord2tag='+convert(varchar(10),@fldi_ord2tag)+' and fldi_fieldname='''+@fldi_fieldname+N''' 
end
' 
print @s 
   FETCH NEXT FROM status1 INTO @fldi_tbtype,@fldi_ord2tag,@fldi_system,@fldi_fieldname,@fldi_fieldcaption,@fldi_datatype,@fldi_ident,@fldi_size,@fldi_decimal,
  @fldi_default,@fldi_hidden,@fldi_tbname,@fldi_key,@fldi_index 
  END
  CLOSE status1
DEALLOCATE status1 

end