raghu rajvanshi
raghu rajvanshi

Reputation: 17

AssertResultSetsHaveSameMetaData in TSQLT

I am using TSQLT AssertResultSetsHaveSameMetaData to compare metadata between two tables.But the problem is that i cannot hardcode the table name since i am passing the table name as the parameter at the runtime.So is there any way to do that

Upvotes: 0

Views: 325

Answers (1)

datacentricity
datacentricity

Reputation: 1139

You use tSQLt.AssertResultSetsHaveSameMetaData by passing two select statements like this:

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

So it should be quite easy to parameterise the names of the tables you are comparing and build the SELECT statements based on those table name parameters.

However, if you are using the latest version of tSQLt you can also now use tSQLt.AssertEqualsTableSchema to do the same thing. You would use this assertion like this:

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

Once again, parameterising the tables names would be easy since they are passed to AssertEqualsTableSchema as parameters.

If you explain the use case/context and provide sample code to explain what you are trying to do you stand a better chance of getting the help you need.

Upvotes: 3

Related Questions