Breaking News
Loading...
13/03/2013

Lấy nhanh thông tin về tất cả Table trong Database

I. VẤN ĐỀ ĐẶT RA
  • Bạn quản trị 1 máy chủ SQL Server với nhiều Database đang họat động. Một SQL Developer yêu cầu bạn nhanh chóng cho anh ta danh sách những Table trong 1 Database cụ thể nào đó, kèm theo là kiểu dữ liệu, giá trị mặc định... của mỗi Column trong Table. Bạn sẽ làm thế nào?
  • Một Developer khác hỏi bạn 1 Database nọ có bao nhiêu Table. Bạn sẽ làm ra sao?
Nếu ta làm theo cách bấm vô từng Table ở chế độ Design, và sao chép từng bảng dán vào 1 danh sách thì thật sự không hiệu quả chút nào, và rất mất thời gian. Nếu Database có cả trăm Table thì đúng là cực hình.
II. GIẢI PHÁP Mỗi Database trong SQL Server có 1 đối tượng là Information Schema Views.
Mỗi Information Schema Views chứa Metadata của các đối tượng dữ liệu được lưu trong Database. Dựa vào thông tin này ta có thể giải quyết những vấn đề đặt ra ban đầu một cách dễ dàng.
III. THỰC HÀNH
  • Bài thực hành được thực hiện trên SQL Server 2008.
  • Đoạn Script sau sẽ trả về danh sách các Table của mỗi Database, kèm theo là kiểu dữ liệu, giá trị mặc định, có Null hay không:
[sql] SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, COLUMN_DEFAULT, IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS [/sql]
  • Và đây là kết quả trên Database của tôi:

  • Còn muốn lấy nhanh danh sách các Table trong 1 Database, bạn có thể dùng 1 trong 2 cách sau:
Cách 1:  SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS
Cách 2: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
Kết quả trên Database của tôi
Còn nhiều thông tin hữu ích khác về Information Schema Views. Đây chỉ là 1 ví dụ tôi đặt ra để thấy lợi ích của nó. Các bạn có thể tham khảo thêm trên MSDN.
Quang Vinh mai.quangvinh@sqlvn.com

0 comments:

Post a Comment

 
Toggle Footer