Reputation: 3984
I know that I can find the columns of any table in a microsoft sql server database using:
USE dbname;
SELECT COLUMN_NAME AS 'ColumnName',TABLE_NAME AS 'TableName'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%search-for%'
ORDER BY TableName,ColumnName;
Is it possible to search all databases in an instance with one query?
Upvotes: 0
Views: 55
Reputation: 580
DECLARE @Results TABLE(
TABLE_CATALOG VARCHAR(50),
TABLE_SCHEMA VARCHAR(50),
TABLE_NAME VARCHAR(50),
COLUMN_NAME VARCHAR(100)
);
INSERT INTO @Results
EXEC sp_MSforeachdb
@command1 = 'USE [?]; SELECT TABLE_CATALOG
,TABLE_SCHEMA
,TABLE_NAME
,COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME= ''YourColumnName'' ;';
SELECT * FROM @Results
Please refer to the comment from @Larnu.
Upvotes: 0
Reputation: 315
sp_MSForEachDB @command1='USE ?;
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME like ''%ColumnNameHere%'''
Upvotes: 1