2012-01-31 89 views
3

我必须生成一些随机数据,但从正则表达式给出。T-SQL从正则表达式生成随机/样本数据

例如,我有以下规则:

1) IsRegEx('^(((([0-1]?[0-9]|2[0-3])(:[0-5][0-9])?)?:)?[0-5])?[0-9]$', #COMMENT#) 
2) IsRegEx('^[0-9]+:([0-5][0-9]):([0-5][0-9])$',#COMMENT#) 
3) IsRegEx('^[0-9]+$' , #COMMENT#) 

和其他许多人......我要生成文本#Comment#将通过该规则。没有必要有很多变化,一个就足够了。

有没有人做过这样的事情?

在此先感谢。

回答

3

正确的方式做,这在SQL服务器 - 直通CLR存储过程或CLR用户定义的函数,如果你的SQL Server版本允许这个。否则 - 没有任何可接受的方法。

+0

使用存储过程执行此操作没有任何问题。我在询问想法或简单的方法来做到这一点。我可以写一些检查,例如,如果我有“[0-9] +”联系我的字符串随机数,从0到9,但有太多的变体,它会消耗太多的时间在这个办法。 – gotqn 2012-01-31 16:20:14

+0

正如我所说的 - 有没有简单,可接受和快速的方法来做本地T-SQL – 2012-01-31 16:23:26

+0

@Joro一个CLR存储过程是不一样的t-sql存储过程http://msdn.microsoft.com/ en-us/library/ms131094.aspx – 2012-01-31 18:00:41