ALS u de tabel kunt wijzigen (ervan uitgaande dat het SQL Server 2005 is) en hoger), kunt u een berekende kolom aan uw tabel toevoegen en deze behouden. Deze kolom kan een "opgeschoonde" weergave van uw "telefoonnummer"-veld bevatten.
Zoiets als dit:
create function dbo.CleanPhone(@phone varchar(100))
returns varchar(100)
with schemabinding
as begin
return
replace(replace(replace(replace(replace(replace(@phone, ' ', ''),
'-', ''), '(', ''), ')', ''), '-', ''), '+', '')
end
en dan:
alter table (yourtable)
add cleanedPhone as dbo.CleanPhone(Phone) persisted
Nu zou de kolom 'Opgeschoonde telefoon' altijd een 'opgeschoonde' versie van uw telefoonnummer bevatten - altijd zoiets als:555123456.
Omdat het een PERSISTED-veld is, loopt u ook geen prestatieverlies bij het opvragen - de waarde wordt gemaakt en opgeslagen in uw tabel en is beschikbaar als een normale kolom.
Hierover kun je nu vrij gemakkelijk vragen.
Marc