T-SQL从RegEx生成随机/样本数据

时间:2012-01-31 15:46:50

标签: tsql

我必须生成一些随机数据,但是来自正则表达式。

例如我有这些规则:

 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#。没有必要有很多变化,一个就够了。

有人做过这样的事吗?

提前致谢。

2 个答案:

答案 0 :(得分:3)

在Sql Server中执行此操作的正确方法 - 通过CLR存储过程或CLR用户定义的函数,如果您的Sql Server版本允许此操作。否则 - 没有任何可接受的方式。

答案 1 :(得分:1)

你不能用T-SQL做到这一点。 T-SQL甚至不支持正则表达式。如果您有Visual Studio Premium,则可以创建数据库项目并使用正则表达式数据生成器来创建所需的测试数据。选中“Generating Test Data for Databases using Data Generators”。

如果您没有VS Premium,可以创建自己的生成器CLR stored procedure