我在源表中有一个名为varchar(40)类型的代码,它们将它从varchar(40)更改为varchar(65)。我们创建了一个ETL包,它创建了3个表。在所有3个表中,列需要从varchar(40)更改为varchar(65)。
现在我需要测试这个变化。我知道通过查看表结构,我们可以简单地说列已从varchar(40)更改为varchar(65)。
有没有其他方法可以测试此更改?
非常感谢任何帮助!!!!
答案 0 :(得分:0)
他们是否将原始数据保存在任何地方?安排测试值是否仍然相同。或者它现在正在使用中,是否有超过40个字符的值?
答案 1 :(得分:0)
尝试DESC TableName
为您提供足够的确认。
答案 2 :(得分:0)
使用INFORMATION_SCHEMA
次观看获取列信息:
SELECT c.DATA_TYPE,
c.CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE c.TABLE_SCHEMA = 'dbo' --//@todo: put your schema name here
AND c.TABLE_NAME = 'MyTableName1'
AND c.COLUMN_NAME = 'MyColumnName1'
有关返回列的说明,请参阅here,您最需要DATA_TYPE
和CHARACTER_MAXIMUM_LENGTH
。
当然,您可以使用以下方法为所有3个检查创建1个查询:
SELECT c.DATA_TYPE,
c.CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE c.TABLE_SCHEMA = 'dbo' --//@todo: put your schema name here
AND( (c.TABLE_NAME = 'MyTableName1' AND c.COLUMN_NAME = 'MyColumnName1')
OR (c.TABLE_NAME = 'MyTableName2' AND c.COLUMN_NAME = 'MyColumnName2')
OR (c.TABLE_NAME = 'MyTableName3' AND c.COLUMN_NAME = 'MyColumnName3')
)