SQL Server数据类型测试

时间:2009-11-18 05:33:34

标签: sql-server-2005

我在源表中有一个名为varchar(40)类型的代码,它们将它从varchar(40)更改为varchar(65)。我们创建了一个ETL包,它创建了3个表。在所有3个表中,列需要从varchar(40)更改为varchar(65)。

现在我需要测试这个变化。我知道通过查看表结构,我们可以简单地说列已从varchar(40)更改为varchar(65)。

有没有其他方法可以测试此更改?

非常感谢任何帮助!!!!

3 个答案:

答案 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_TYPECHARACTER_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')
        )