如何修改以下查询以识别跨数据库的可能的隐式转换(对于共享相同名称的列)?
我目前的工作原理,但仅适用于您目前所在的数据库。
我想要的是查看同一服务器上每个数据库的所有潜在匹配项。以下是我目前正在使用的内容:
SELECT DISTINCT
@@SERVERNAME AS [server_name] ,
DB_NAME() AS [database_name] ,
[left].[COLUMN_NAME] AS [column_name] ,
[left].[TABLE_SCHEMA] AS [table_schema] ,
[left].[TABLE_NAME] AS [table_name] ,
[left].[DATA_TYPE] AS [data_type] ,
[left].[CHARACTER_MAXIMUM_LENGTH] AS [character_maximum_length] ,
[left].[NUMERIC_PRECISION] AS [numeric_precision] ,
[left].[NUMERIC_SCALE] AS [numeric_scale]
FROM [INFORMATION_SCHEMA].[COLUMNS] [left]
INNER JOIN [INFORMATION_SCHEMA].[COLUMNS] [right] ON [left].[COLUMN_NAME] = [right].[COLUMN_NAME]
WHERE ( ( [left].[DATA_TYPE] != [right].[DATA_TYPE] )
OR ( [left].[CHARACTER_MAXIMUM_LENGTH] != [right].[CHARACTER_MAXIMUM_LENGTH] )
OR ( [left].[NUMERIC_PRECISION] != [right].[NUMERIC_PRECISION] )
OR ( [left].[NUMERIC_SCALE] != [right].[NUMERIC_SCALE] )
)
ORDER BY [left].[COLUMN_NAME] ,
[left].[TABLE_SCHEMA] ,
[left].[TABLE_NAME]