sql - 将数据库与主模板数据库进行比较
问题描述
我需要能够将数据库与主数据库或模板数据库进行比较。如果正在比较的数据库中存在不存在的列,则脚本应将这些列添加到它缺少的表中。
我不确定从哪里开始,但我有这个:
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
这将为我提供我认为我需要从我的数据库中需要更新或检查的所有信息。我的想法是我可以做某种形式的加入,但又一次,不确定从哪里开始。
解决方案
你可以使用LEFT JOIN
从你master_template_database
到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
那么您将需要使用FULL OUTER JOIN
来识别
推荐阅读
- python-3.x - How to get ScrollView to reset to the top of the screen in python
- uwp - 在 Windows 10 [UWP] 中搜索应用程序时的图标
- python - 使用 python 代码从 IEEEXplore 网站提取 DOI
- php - 将 php mysqli 查询行结果回显到 html div
- python - Python 作业、中点和舍入字符串
- java - 使用 Java 将 GeoJSON 数据解析为多边形
- php - How can i filter nested object in array using Laravel 5.5
- javascript - 如何解压缩包含多个文件的 zip 文件并将这些文件推送到我的 dropzone 上传器
- bytecode - Javassit:如何删除超类
- html - 有没有办法让“输入”击键单击特定按钮?