比较数据库与主模板数据库

时间:2019-05-01 10:41:13

标签: sql sql-server

我需要能够将数据库与主数据库或模板数据库进行比较。如果要比较的数据库中不存在某些列,则脚本应将这些列添加到缺少该表的表中。

我不确定从哪里开始,但是我知道:

USE [database_that_needs_to_be_compared]

SELECT 
    TABLE_NAME,COLUMN_NAME
    ,DATA_TYPE
    ,CHARACTER_MAXIMUM_LENGTH
    ,IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
ORDER BY TABLE_NAME ASC

这将为我提供我认为需要从数据库中更新和检查的所有信息。我的想法是我可以进行某种形式的加入,但又不能确定从哪里开始。

1 个答案:

答案 0 :(得分:0)

您可以将LEFT JOINmaster_template_database的{​​{1}}

database_that_needs_to_be_compared

添加您在SELECT * FROM [master_template_database].INFORMATION_SCHEMA.COLUMNS m LEFT JOIN [database_that_needs_to_be_compared].INFORMATION_SCHEMA.COLUMNS c ON m.TABLE_NAME = c.TABLE_NAME AND m.COLUMN_NAME = c.COLUMN_NAME 子句中所需的条件

如果可能有列添加到WHERE中但没有添加到database_that_needs_to_be_compared中,那么您将需要使用master_template_database来标识