Hocam basitçe şu şekilde yapabilirsiniz ki ben PHP'de yapabildim. ASP olayında daha basiti var mıdır bilemiyorum. Ama mantık aynı olmalı.

haber.asp?id=12 diyelim. Yenisi de söz gelimi haber-adi-id.html olsun.

haber.asp ya da haber.php sayfasında id ile gelen değerin içeriğini SQL'den aldın veriyi. Yeni url haber başlıklarından oluşuyorsa örneğin PHP'de

$url = SQL['haberSEObaslik'];  //olsun
Header('HTTP/1.1 301 Moved Permanently');
Header('Location:'.$url']);
exit;
Bu şekilde eski php/asp v.b sayfanda dursun. Zaten Google senin 301'ini gördüğü an iş bitmiş demektir. Ortalama 1 ay içerisinde kendi düzeltiyor. Zaten bunu bir çok makalesinde yazmış. 404 olarak kalmasın ya da anasayfaya ya da başka alakasız bir sayfaya yönlenmesin diye.

Eski URL yapın ile Yeni URL yapın arasında bir bağ olmalı. Eski tablona yeni id leri girebiliyorsan otomatik o daha kolay da olabilir. Söz gelimi aynı [eski vt de] ID ye sahip yeni SQL tablosu gibi. Ya da eşsiz id siz URLler gibi ortak bir alanda oluşmalı ki köprü görevi oluşturabilesin. Yeni VT oluştururken bunları dikkate alın derim.