Единственный способ получить доступ к функциям типа RegEx в SQL 2005 (и, вероятно, 2008) - это написать (или загрузить) и использовать функции CLR.
Если все строки всегда отформатированы таким образом, чтобы вы могли определить конкретные цифры, которые вы хотите, вы можете сделать что-то вроде следующего. Это основано на (большом) предположении, что первый набор скобок, найденный в строке, содержит желаемое число.
/*
CREATE TABLE MyTable
(
MyText varchar(500) not null
)
INSERT MyTable values ('Some Text Goes Here - (305) Followed By Some More Text')
*/
SELECT
MyText -- String
,charindex('(', MyText) -- Where's the open parenthesis
,charindex(')', MyText) -- Where's the closed parenthesis
,substring(MyText
,charindex('(', MyText) + 1, charindex(')'
,MyText) - charindex('(', MyText) - 1) -- Glom it all together
from MyTable
Неуклюжий как чёрт (потому что в SQL есть патетически ограниченный набор функций для работы со строками), но он работает.