Sql 识别跨数据库的潜在隐式转换

Sql 识别跨数据库的潜在隐式转换,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,如何修改以下查询以识别数据库之间可能的隐式转换(对于共享相同名称的列) 我目前拥有的一切都有效,但只适用于您当前所在的任何数据库 我希望看到同一服务器上每个数据库的所有潜在匹配。以下是我目前正在处理的问题: SELECT DISTINCT @@SERVERNAME AS [server_name] , DB_NAME() AS [database_name] , [left].[COLUMN_NAME] AS [column_name] ,

如何修改以下查询以识别数据库之间可能的隐式转换(对于共享相同名称的列)

我目前拥有的一切都有效,但只适用于您当前所在的任何数据库

我希望看到同一服务器上每个数据库的所有潜在匹配。以下是我目前正在处理的问题:

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]                         

你是说同一台服务器上的db?没错。我将更新我的问题以使其更清楚。只是一个提示:在您的
内部联接中,…
包括
和[left].[TABLE\u NAME][right].[TABLE\u NAME]
以避免自我比较。只需添加
即可获取任何特定数据库的架构。不幸的是,SQLServer没有提供覆盖服务器上所有数据库的类似视图。