2

我一直在研究如何在我们的数据库中生成测试数据,以便我们可以测试 CRUD 操作,而不会在插入时遇到外键约束问题。

我决定采用的方法是通过 Visual Studio 2010 Ultimate 的数据生成器功能。为我们的特定数据库设置数据生成器计划并不太难,但我遇到了数据类型问题。

具体来说,将数据库中的一列设置为 Bit 类型;但是,数据生成器计划将数据类型设置为 int。从这里,我可以选择的唯一生成器选项是数据绑定生成器、整数、顺序数据绑定生成器、SmallInt 和 TinyInt。

运行生成器时,除了名称中带有 Int 的选项之外的所有选项都不会产生输出值。使用 Int 生成器之一运行生成器以尝试生成值会导致此错误:

错误 1 ​​TSD50003:生成器 Int 对列 [dbo].[Contract_Relationship].[status] 无效 - 类型位

这个错误很明显,因为该列实际上是一个位而不是一个 Int。不太明显的是我如何才能将列上的数据类型更改为正确的类型。

我尝试查看工具 > 选项 > 数据库 > 默认生成器下的数据类型生成器定义,并且位属于默认数据生成器类别,该类别与 SQL 数据类型类别下的布尔类型相关联。

从这里我也无法更改生成器,因为默认数据生成器类别的下拉列表与每个 SQL 数据类型相关联。尝试更改数据生成器计划中位列的数据类型也不起作用,因为它是只读的。

最后,我会将列设置为 null 作为解决方法,但它设置为不为 null。有人对如何将列的数据类型更改为位有任何建议吗?

先感谢您!

更新:我注意到在开发团队的模式文件中进行了更多研究后,该列实际上在 Create Table .sql 文件中设置为 Int 数据类型。在我看来,数据生成器用于模式的信息来自这些文件。

在 SQL Server 客户端中创建表文件和实际数据库之间的列不正确似乎很奇怪,但这可能与我的问题没有直接关系。

如果有人知道如何更改数据生成器中的数据类型,甚至知道数据生成器从哪里提取模式信息,我仍然会感兴趣。

再次感谢大家的时间。

4

0 回答 0