我不得不在VBA代码中嵌入SQL以从公司的数据库中获取信息的更多冒险...我们的数据库可能有几千个数据库表,所以如果你正在寻找特定的东西,你必须做一个很多东西(特别是如果表的名称不像“ITEMS”那样直观)。
我对我正在寻找的列标题的调用有一个大概的了解,并且遇到了这个代码来找到它:
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'DATABASE'
AND COLUMN_NAME LIKE '%MFGR%';
这返回了包含%MFGR%的列的所有表的名称...找到我需要的表非常快......比任意导入看起来像它们的表快得多。
无论如何,更好的方法是让查询返回包含任何列中某个值的所有表的名称。通常我不知道列的名称是什么,但知道其中一个值是什么。我只是想知道哪些表包含它所以我可以看看它们。
结果不断出现:http://vyaskn.tripod.com/search_all_columns_in_all_tables.htm
听起来它可能会奏效,但有更简单的方法吗?我还没有尝试过把它放到VBA代码中。
编辑:看一下代码,看起来它涉及操纵我无权访问的数据库(创建程序,创建表等)。无论如何这样做只是作为一个查询?答案 0 :(得分:0)
请使用以下查询输出,其中database是数据库的名称:
SELECT DISTINCT T.name
FROM database.sys.columns C
LEFT OUTER JOIN database.sys.tables T
ON T.object_id = C.object_id
WHERE C.name LIKE '%name%'