Tôi đã lịch sử sử dụng sau đây như một phần của một kịch bản triển khai thủ tục lưu trữ là gì loại để tra cứu ID đối tượng, ví dụ:cách ưa thích để xác định xem một thủ tục lưu trữ tồn tại
OBJECT_ID(N'[dbo].[SPROC_NAME]', N'P')
Dường như việc sử dụng quá tải đó sẽ làm cho tra cứu OBJECTPROPERTY
không cần thiết.
Tôi muốn biết nếu có bất kỳ nhược điểm nào khi chỉ sử dụng quá tải OBJECT_ID
và giảm số lần tra cứu OBJECTPROPERTY
.
Các đối tượng SQL đều chia sẻ cùng một không gian tên duy nhất. 'OBJECT_ID' trả về ID của một đối tượng với tên đó, nếu nó tồn tại. 'OBJECTPROPERTY' xác nhận rằng đối tượng thực sự là một thủ tục lưu sẵn, vì có thể có một bảng hoặc khung nhìn có tên' [SPROC_NAME] '(và nếu có, bạn sẽ không thể tạo ra một sproc với tên đó). – RBarryYoung
Nếu tham số thứ hai được chỉ định, 'OBJECT_ID' sẽ chỉ trả về giá trị không null nếu một đối tượng thuộc loại đó tồn tại. (Hãy chắc chắn để xác định lược đồ, dunno những gì sẽ xảy ra nếu nó là một bảng trong một lược đồ và một thủ tục khác ...) –