我试图在SQL服务器中获取列类型。我知道这很好用:
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';
这是位于不同数据库中的存储过程的一部分,我希望能够将其完整传递给路径名,以便它可以从我所在的任何数据库中运行。
答案 0 :(得分:1)
将数据库名称作为限定符放在INFORMATION_SCHEMA前面。如果您不对其进行硬编码,则需要使用动态SQL。但是" DbName.INFORMATION_SCHEMA.COLUMNS"将使您进入正确的系统视图(在同一服务器上),然后TABLE_NAME = x和COLUMN_NAME = y将转到表和列。
SELECT DATA_TYPE
FROM THEOTHERDB.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'table_name' and COLUMN_NAME = 'column_name';
答案 1 :(得分:0)
反之亦然! 您需要查询其他数据库中的information_schema对象
EG从OtherDB.information_schema.columns中选择*