Làm cách nào để liệt kê hoặc tìm kiếm tất cả các tên cột trong cơ sở dữ liệu của tôi?


37

Tôi muốn tìm kiếm một chuỗi trong tên của các cột có trong cơ sở dữ liệu.

Tôi đang làm việc trong một dự án bảo trì và một số cơ sở dữ liệu tôi xử lý có hơn 150 bảng, vì vậy tôi đang tìm cách nhanh chóng để làm điều này.

Bạn đề xuất món gì?


câu hỏi tương tự được hỏi trong SO
CoderHawk

bài báo hay. Cảm ơn rất nhiều. Tôi cũng đã sử dụng TM Field Finder và nó thực sự mạnh mẽ trong vấn đề tìm kiếm trong Lược đồ SQL và dữ liệu.

Câu trả lời:


38

Bạn có thể sử dụng truy vấn sau để liệt kê tất cả các cột hoặc cột tìm kiếm trên các bảng trong cơ sở dữ liệu.

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; 

Bạn có thể sử dụng các khung nhìn information_schema để liệt kê tất cả các đối tượng trong cơ sở dữ liệu SQL Server 2005 hoặc 2008.

SELECT * FROM information_schema.tables

SELECT * FROM information_schema.columns

http://blog.sqlauthority.com/2008/08/06/sql-server-query-to-find-column-from-all-tables-of-database/


8

Ngoài ra còn có SQL Search - một công cụ miễn phí tích hợp với SQL Server Management Studio.

văn bản thay thế


1
Tìm kiếm SQL là một công cụ tốt, nhưng hãy nhớ rằng cửa sổ kết quả bị giới hạn tùy ý, tôi tin rằng, 250 kết quả. Lần cuối cùng tôi sử dụng công cụ này, Red Gate không có cách nào để nâng giới hạn này. Điều đó đã được nói, nó vẫn là một công cụ rất hữu ích và tôi muốn giới thiệu nó cho bất kỳ DBA hoặc Nhà phát triển SQL Server nào. Giá là đúng quá!
Matt M

5

Muộn một nhưng hy vọng hữu ích vì cả hai công cụ đều miễn phí.

ApexQuery Search - điều hay của công cụ này là nó cũng có thể tìm kiếm dữ liệu, hiển thị các phụ thuộc giữa các đối tượng và vài thứ hữu ích khác.

nhập mô tả hình ảnh ở đây

SSMS Toolpack - miễn phí cho tất cả các phiên bản ngoại trừ SQL 2012. Rất nhiều tùy chọn tuyệt vời không chỉ liên quan đến tìm kiếm như đoạn trích, các tùy chỉnh khác nhau và hơn thế nữa.

nhập mô tả hình ảnh ở đây


1

Đây là một cái mà tất cả các DBA SQL từ thời xưa sử dụng.

EXEC sp_help 'your table name';

Nếu chỉ với một dòng duy nhất, bạn thậm chí không cần nhập EXEC. Cứ làm đi

sp_help 'your table name'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.