2014-10-10 22 views
43

Làm cách nào để có được tất cả các tên bảng có tên cột đã tồn tại? Tôi muốn tên với "Like" trong máy chủ sql. Ví dụ: -Tìm tất cả các tên bảng có tên cột?

select TableNames where columnname like '%MyColumn%' 

Xin hãy giúp tôi

+1

** không trùng lặp ** vì câu hỏi này gọi là 'LIKE' vì vậy là yêu cầu rộng hơn. Câu trả lời được chọn cũng cung cấp tên cột để giải quyết sự thay đổi của các tên cột mà LIKE sẽ trả về. – gordon

Trả lời

83

Vui lòng thử truy vấn dưới đây. Sử dụng sys.columns để có được thông tin chi tiết: -

SELECT c.name AS ColName, t.name AS TableName 
FROM sys.columns c 
    JOIN sys.tables t ON c.object_id = t.object_id 
WHERE c.name LIKE '%MyCol%'; 
+1

và để xem tên lược đồ, hãy thêm SCHEMA_NAME (t.schema_id) –

8

Hãy thử như thế này: cho SQL SERVER 2008+

SELECT c.name AS ColName, t.name AS TableName 
FROM sys.columns c 
    JOIN sys.tables t ON c.object_id = t.object_id 
WHERE c.name LIKE '%MyColumnaName%' 

Hoặc

SELECT COLUMN_NAME, TABLE_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME LIKE '%MyName%' 

Hoặc như thế này:

SELECT name 
FROM sys.tables 
WHERE OBJECT_ID IN (SELECT id 
       FROM syscolumns 
       WHERE name like '%COlName%') 
11

Bạn có thể làm điều này:

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 '%MyColumn%' 
ORDER BY schema_name, table_name; 

tham khảo:

Các vấn đề liên quan