if not (Exists (Select Table_name from SysTable where Table_name='SpaCounters')) then create table SpaCounters ( InvoiceCounter integer default 0, LastInvoiceOtchet integer default 0, LastDepositOtchet integer default 0, TrueInvoiceNo integer default 0, DepositCounter integer default 0 ) end if GO IF (EXISTS (select proc_name from sysprocedure where proc_name='SpaGetCounter')) THEN Drop function SpaGetCounter; END IF; GO CREATE FUNCTION "DBA"."SpaGetCounter"(in CounterName char(50)) returns integer begin atomic declare @R integer; execute immediate 'set @R = isnull((SELECT '||CounterName||' FROM SpaCounters),0)'; execute immediate 'UPDATE SpaCounters SET '||CounterName||'='||(@R+1); return(@R+1) end