我正在使用TSQLT AssertResultSetsHaveSameMetaData来比较两个tables.But之间的元数据,问题是我不能硬编码表名,因为我在runtime.So中将表名作为参数传递。有什么方法可以这样做吗
发布于 2015-10-28 16:05:24
可以通过传递两个select语句来使用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的。
如果你解释了用例/上下文,并提供了示例代码来解释你正在尝试做什么,你就有更好的机会获得你需要的帮助。
https://stackoverflow.com/questions/33368643
复制相似问题