Я думаю, что вы описываете lead()
:
select t.*,
lead(balance) over (partition by number order by date) as next_balance
from t
В действительности создание фиктивного файла не собирается оказывать огромное влияние производительности в большинстве приложений. Конечно, если Вы совершенствовались, полномочия с создают, но не уничтожают его, мог бы стать немного волосатым...
Гуиды всегда удобны для случайных имен (для предотвращения конфликтов) - что-то как:
string file = Path.Combine(dir, Guid.NewGuid().ToString() + ".tmp");
// perhaps check File.Exists(file), but it would be a long-shot...
bool canCreate;
try
{
using (File.Create(file)) { }
File.Delete(file);
canCreate = true;
}
catch
{
canCreate = false;
}
Можно использовать CAS, чтобы проверить, что нет никаких политик.NET (caspol) ограничения создания и записи файла на том местоположении.
Но это не покроет политики окон. Необходимо будет вручную проверить политики NTFS. И даже затем существуют процессы, которые могут решить, что Нельзя создать файл (например, вирусный сканер).
Лучшее и большая часть полного пути должны попробовать его.