Thứ Tư, 1 tháng 4, 2009

Tìm kiếm SQL Server objects nhanh hơn.

Trong bài viết này sẽ hướng dẫn cho bạn một số cách tìm kiếm các đối tượng SQL Server một cách nhanh chóng hơn. Việc tìm kiếm các đối tượng trong SQL Server như table hay stored procedure sẽ rất cực nhọc bởi vì bạn phải duyệt qua từng đối tượng một trong...

Trong bài viết này sẽ hướng dẫn cho bạn một số cách tìm kiếm các đối tượng SQL Server một cách nhanh chóng hơn.

Việc tìm kiếm các đối tượng trong SQL Server như table hay stored procedure sẽ rất cực nhọc bởi vì bạn phải duyệt qua từng đối tượng một trong database. Object Browser có thể trợ giúp cho bạn nhưng lại tiêu tốn khá nhiều thời gian.

Vì vậy, hãy bắt đầu bằng việc giả sử rằng chúng ta chưa biết bảng TestTable nằm ở đâu. Chúng ta có thể sử dụng bảng SysObject và truy vấn nó theo cách sau:

  1. Select * from SysObjects where name like ‘TestTable’
  2. [code]
  3. Nhưng bảng SysObject này thuộc về một database cụ thể. Do đó, nếu bạn có một database tên là DB1 có chứa TestTable và bạn chạy câu lệnh truy vấn trong DB2, nó sẽ không cho bạn kết quả mong muốn.
  4. Vì vậy nếu như tên của database là unknown?, chúng ta sử dụng câu lệnh truy vấn sau đây:
  5. [code]
  6. Exec sp_MSforeachdb ' Select * from ?.. SysObjects where name like ‘TestTable’
  7. ’ Better one: Exec sp_MSforeachdb ' If exists(select * from ?.. SysObjects where name = ‘TestTable’)select *
  8. from ?.. SysObjects where name = TestTable’
  9. ' This will give you the required information and will remove that redundant data.

Chú ý: dấu ? trong câu lệnh truy vấn thay thế cho các tên cơ sở dữ liệu được duyệt trong vòng lặp.

Thủ tục sp_MSforeachdb này không được cung cấp bởi Microsoft. Vì vậy bạn sẽ không tìm thấy trong SQL Server Help. Thủ tục này sẽ chạy duyệt qua tất cả các database đang có mặt trong SQL Server.

Không có nhận xét nào:

Đăng nhận xét