Đầu tiên - bạn nên sử dụng sys.objects thay vì dbo.sysobjects. dbo.sysobjects là một cấu trúc SQL 2000 chỉ có trong SQL 2008 vì lý do tương thích ngược. sys.objects chứa một hàng cho mỗi đối tượng phạm vi lược đồ, do người dùng xác định, được tạo trong cơ sở dữ liệu, vì vậy bạn sẽ không phải lọc truy vấn của mình. sys.all_objects là một tập hợp siêu đẳng, chứa cả đối tượng hệ thống và người dùng.
Thứ hai - về mặt quyền - trong SQL Server 2005 và các phiên bản mới hơn, khả năng hiển thị của siêu dữ liệu trong chế độ xem danh mục bị giới hạn ở các bảo mật mà người dùng sở hữu hoặc người dùng đã được cấp một số quyền. Vì vậy, người dùng của bạn sẽ phải được cấp một số quyền đối với các mục mà họ đang tìm kiếm. Việc cấp XEM ĐỊNH NGHĨA cho người dùng trên (các) lược đồ trong cơ sở dữ liệu sẽ cho phép truy vấn hoạt động mà không cần cấp quyền truy cập vào bất kỳ dữ liệu nào.