【发布时间】:2019-07-29 02:14:55
【问题描述】:
我有一些数据库和表格。我正在尝试检测每一列的数据类型并根据数据类型创建随机变量?
例如:
col1 : int
col2 : nvarchar(max)
col3 : bit
我需要检测代码中的每种数据类型并为插入创建随机变量。
我应该为此工作创建一个检查所有数据类型并生成变量的方法吗?喜欢:
if(datatype.Equals("int"))
random.Next();
else if(datatype.Equals("string"))
...
有什么简单的方法吗?
【问题讨论】:
-
我正在使用 MSSQL。
-
另外,你对“随机”的定义是什么?也许对于 int 它可能是“显而易见的”(例如,所有可能值的均匀分布),但对于字符串,您可能想要限制和定义更多。您是否应该先确定随机长度,然后再确定随机字符?哪些随机字符,您是否限制自己使用字母?到所有 unicode 字符? GUID ?
-
我做了一些搜索,我想我需要确定字符和长度。这是正确的。但我只是想了解是否有任何简单的方法可以做到这一点。该解决方案必须适用于字符串、整数、位、日期时间等...如果不是,那么我想我必须为所有数据类型一一创建自己的算法。
-
没有通用的方法来做到这一点。虽然您显然可以生成一些随机位模式,然后将它们重新解释为某种类型的实例(尽管这在 .NET 中并不容易做到!)但并非所有位模式都对所有类型都有效。除了完全随机数据的所有其他明显问题(即,它不能代表您的应用程序将处理的实际数据)之外,仅这一点就足以说明为什么需要特殊套管。生成虚拟数据的第三方解决方案有多种,但此评论太窄,无法包含它们。
标签: c# sql .net sql-server random