Sql 使用完整表路径名获取列类型

Sql 使用完整表路径名获取列类型,sql,sql-server,Sql,Sql Server,我正在尝试在SQL server中获取列类型。我知道这很管用: SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'table_name' and COLUMN_NAME = 'column_name'; 但它不适用于任何人 SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '[datab

我正在尝试在SQL server中获取列类型。我知道这很管用:

SELECT DATA_TYPE
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE TABLE_NAME = 'table_name' and COLUMN_NAME = 'column_name';
但它不适用于任何人

SELECT DATA_TYPE
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE TABLE_NAME = '[database_name].[dbo].[table_name]' and COLUMN_NAME = 'column_name';
这是另一个数据库中存储过程的一部分,我希望能够完整地传递完整路径名,以便它可以从我所在的任何数据库中运行

正好相反! 您需要在另一个数据库中查询信息


例如,从OtherDB.information\u schema.columns中选择*将数据库名称作为限定符放在information\u schema前面。如果不是硬编码,则需要使用动态SQL。但是“DbName.INFORMATION\u SCHEMA.COLUMNS”将使您进入正确的系统视图(在同一台服务器上),然后表\u NAME=x和列\u NAME=y将使您进入表和列

SELECT DATA_TYPE
    FROM THEOTHERDB.INFORMATION_SCHEMA.COLUMNS 
    WHERE TABLE_NAME = 'table_name' and COLUMN_NAME = 'column_name';

表名只是没有模式和数据库的名称。您通常不能做您想做的事情,因为
信息\u架构
在数据库(而不是服务器)中
OBJECT\u ID
可能会有帮助。您需要从所需的数据库中查询
信息\u架构.列
视图:
来自数据库\u name.INFORMATION\u架构.列,其中..