SQL Server - 构造列定义

时间:2013-11-27 15:14:27

标签: sql sql-server sql-server-2008

我需要比较两个数据库并确定哪些列已更改。一旦我确定了以某种方式改变的列(大小,类型等),我需要捕获(写入表)旧列定义和新列定义。

例如,如果使用INFORMATION_SCHEMA.COLUMNS表,我发现列大小已从25更改为50,我将需要存储两列定义。在这种情况下,它可能是'char(25)'和'char(50)'。

使用INFORMATION_SCHEMA.COLUMNS表来确定某些内容发生了变化时我没有问题。

我遇到的问题是,一旦我确定该列已更改,我如何构建列定义?在这种情况下,如何构建'char(25)'和'char(50)'?

我可以在哪里获得这种类型的定义吗?如果我必须逐个构建定义,我该如何确定定义的所有组件。

感谢任何建议或建议。

提前致谢。

1 个答案:

答案 0 :(得分:1)

select table_name, column_name,
column_definition = data_type + isnull('(' + convert(varchar, character_maximum_length) + ')', '') 
from information_schema.columns