IF (EXISTS (select proc_name from sysprocedure where proc_name='GetCounterValue')) THEN Drop function GetCounterValue; END IF; GO create function "DBA".GetCounterValue(in CounterName char(50)) returns integer begin atomic declare @R integer; execute immediate 'set @R = isnull((SELECT '||CounterName||' FROM Counters),0)'; return(@R+1) end //[v 13.06.2005] Jorko create.