This code shows you how it can be done and what trouble you can get into if you need ID to be a unique value in the table. There are more situations where you might end up with duplicates. One would be that two users add rows to the table at the same time.
declare @T table(Postcode varchar(5), Active bit, ID bigint)
insert into @T (Postcode, Active, ID)
select '1111', 1, count(*)+1
from @T
insert into @T (Postcode, Active, ID)
select '2222', 0, count(*)+1
from @T
delete from @T where Postcode = '1111'
insert into @T (Postcode, Active, ID)
select '3333', 0, count(*)+1
from @T
select *
from @T
Result:
Postcode Active ID
-------- ------ --------------------
3333 0 2
2222 0 2
If you need the values to be unique you should use an identity column instead. Perhaps even make it a primary key or at least add a unique constraint on the ID column.
IDfield which seems to support my guess