一尘不染

如何列出或搜索数据库中的所有列名?

sql-server

我想在数据库中存在的列的名称中搜索一个字符串。

我正在做一个维护项目,我处理的一些数据库有超过 150 个表,所以我正在寻找一种快速的方法来做到这一点。

你有什么建议吗?


阅读 76

收藏
2022-11-04

共1个答案

一尘不染

您可以使用以下查询列出所有列或跨数据库中的表搜索列。

USE AdventureWorks 
GO 
SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%EmployeeID%'
ORDER BY schema_name, table_name; 

您可以使用 information_schema视图列出 SQL Server 2005 或 2008 数据库中的所有对象。

SELECT * FROM information_schema.tables

SELECT * FROM information_schema.columns
2022-11-04