AssertResultSetsHaveSameMetaData в TSQLT

Я использую TSQLT AssertResultSetsHaveSameMetaData для сравнения метаданных между двумя таблицами. Но проблема в том, что я не могу жестко закодировать имя таблицы, так как я передаю имя таблицы в качестве параметра во время выполнения. Есть ли способ сделать это


person raghu rajvanshi    schedule 27.10.2015    source источник


Ответы (1)


Вы используете tSQLt.AssertResultSetsHaveSameMetaData, передавая два оператора select следующим образом:

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 в качестве параметров.

Если вы объясните вариант использования/контекст и предоставите пример кода, чтобы объяснить, что вы пытаетесь сделать, у вас больше шансов получить необходимую помощь.

person datacentricity    schedule 28.10.2015