2009-05-10 51 views

Trả lời

15

Tùy chọn gần nhất là truy vấn INFORMATION_SCHEMA cho các bảng.

SELECT * 
FROM INFORMATION_SCHEMA.Tables 
WHERE table_schema = 'mydatabase'; 

INFORMATION_SCHEMA là một phần của SQL chuẩn, nhưng không phải tất cả nhà cung cấp đều hỗ trợ. Theo như tôi biết, các nhà cung cấp RDBMS duy nhất hỗ trợ nó là:

Một số thương hiệu của cơ sở dữ liệu, ví dụ Oracle, IBM DB2, Firebird, Derby, vv có chế độ xem "danh mục" tương tự cung cấp cho bạn giao diện nơi bạn có thể truy vấn siêu dữ liệu trên hệ thống. Nhưng tên của các khung nhìn, các cột chúng chứa và mối quan hệ của chúng không khớp với chuẩn ANSI SQL cho INFORMATION_SCHEMA. Nói cách khác, thông tin tương tự có sẵn, nhưng truy vấn bạn sẽ sử dụng để có được thông tin đó là khác nhau.

(chú thích: các khung nhìn danh mục trong IBM DB2 UDB cho hệ thống i khác với khung nhìn danh mục trong IBM DB2 UDB cho Windows/* NIX - rất nhiều cho các phổ trong UDB)

Một số các nhãn hiệu khác (ví dụ: SQLite) không cung cấp bất kỳ giao diện đáng tin cậy nào cho siêu dữ liệu.

+0

Tôi định trả lời và nói "Không, tuyệt đối không". Câu trả lời của bạn đã cứu tôi. Tôi đã học được điều gì đó mới hôm nay :) – wcm

+0

Tôi đã thêm các liên kết vào tài liệu cho INFORMATION_SCHEMA trong các thương hiệu RDBMS tương ứng có hỗ trợ nó. –

5

Không. Họ đều thích làm theo cách riêng của họ.

1

Không, tiêu chuẩn SQL không hạn chế nơi tên bảng được liệt kê (nếu có), vì vậy bạn sẽ phải thực hiện các câu lệnh khác nhau (thường là các câu lệnh SELECT trên bảng được đặt tên đặc biệt) tùy thuộc vào công cụ SQL xử lý.

+1

Như Bill Karwin một cách chính xác chỉ ra, các INFORMATION_SCHEMA là một phần của tiêu chuẩn SQL-92. Một số nhà cung cấp có thể không hỗ trợ nó, nhưng nó là một phần của tiêu chuẩn. –

1

Nếu bạn là OK với việc sử dụng một cách tiếp cận phi SQL bạn có một trình điều khiển ODBC cho cơ sở dữ liệu nó thực hiện các SQLTables entry-point, bạn có thể có thể nhận được các thông tin mà bạn muốn!

pjjH

chi tiết về API tại địa chỉ: http://msdn.microsoft.com/en-us/library/ms711831.aspx

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