用户在框中输入搜索词,然后将该值传递给存储过程,并对照数据库中的几个不同字段进行检查。这些字段并不总是具有相同的数据类型。
一个字段(电话号码)由所有数字组成,因此使用.Net CLR函数检查时会去除字符串中的所有非数字字符。
SELECT dbo.RegexReplace('(123)123-4567', '[^0-9]', '')
问题是,此函数有时突然停止工作,并出现以下错误:
Msg 6533,第16级,状态49,第2行 AppDomain MyDBName.dbo [runtime] .1575已由升级策略卸载,以确保 您的应用程序的一致性。访问关键资源时发生内存不足。 System.Threading.ThreadAbortException:类型的异常 引发了“ System.Threading.ThreadAbortException”。 System.Threading.ThreadAbortException:
我已经尝试过针对此错误在MSDN上发布的建议,但仍然遇到问题。目前,我们无法选择切换到64位服务器。
我知道重新启动服务器会释放它所拥有的任何内存,但这在生产环境中不是可行的解决方案。
是否只有在使用T-SQL的SQL Server 2005中才能从字符串中去除非数字字符?