Как вы говорите следующее в Microsoft SQL Server 2005:
IF EXISTS (SELECT * FROM Table WHERE FieldValue='') THEN
SELECT TableID FROM Table WHERE FieldValue=''
ELSE
INSERT INTO TABLE(FieldValue) VALUES('')
SELECT TableID FROM Table WHERE TableID=SCOPE_IDENTITY()
END IF
То, что я пытаюсь сделать, это проверить, есть ли еще пустое полевое значение, и если есть тогда возврат этого TableID, иначе вставьте пустое поле и верните соответствующий первичный ключ.