0

我正在使用 TSQLT AssertResultSetsHaveSameMetaData 来比较两个表之间的元数据。但问题是我无法硬编码表名,因为我在运行时将表名作为参数传递。所以有什么办法可以做到这一点

4

1 回答 1

3

您可以tSQLt.AssertResultSetsHaveSameMetaData通过传递两个这样的选择语句来使用:

exec tSQLt.AssertResultSetsHaveSameMetaData
      'SELECT TOP 1 * FROM mySchema.ThisTable;'
    , 'SELECT TOP 1 * FROM mySchema.ThatTable;';

因此,参数化您正在比较的表的名称并根据这些表名参数构建 SELECT 语句应该很容易。

但是,如果您使用的是最新版本的 tSQLt,您现在也可以使用tSQLt.AssertEqualsTableSchema它来做同样的事情。你可以像这样使用这个断言:

exec tSQLt.AssertEqualsTableSchema
      'mySchema.ThisTable'
    , 'mySchema.ThatTable';

再一次,参数化表名会很容易,因为它们是AssertEqualsTableSchema作为参数传递的。

如果您解释用例/上下文并提供示例代码来解释您正在尝试做什么,那么您就有更好的机会获得所需的帮助。

于 2015-10-28T08:05:24.360 回答