Có thể, không có nguồn phân tích cú pháp, để chọn danh sách tất cả các tên sproc chèn, cập nhật hoặc xóa bản ghi? Tôi cần tạo một tập lệnh tiện ích TSQL để thực hiện việc này. Hiệu quả không phải là một vấn đề bởi vì nó sẽ được chạy chỉ một vài lần một năm (Curse'rs tôi có nghĩa là con trỏ là ok). Lý tưởng nhất là tập lệnh này sẽ không bao gồm các bản cập nhật cho các bảng biến tạm thời hoặc cục bộ.Làm cách nào để tìm tất cả các thủ tục được lưu trữ chèn, cập nhật hoặc xóa bản ghi?
Tôi đã thử truy vấn sau đây được tìm thấy trên SO Question.
SELECT
so.name,
so2.name,
sd.is_updated
from sysobjects so
inner join sys.sql_dependencies sd on so.id = sd.object_id
inner join sysobjects so2 on sd.referenced_major_id = so2.id
where so.xtype = 'p' -- procedure
and
is_updated = 1 -- proc updates table, or at least, I think that's what this means
Nhưng nó tạo ra âm tính giả.
Các liên kết mà bạn cung cấp bao gồm các câu trả lời cho câu hỏi này ... chỉ cần thêm xóa vào nó. –
Im vẫn nhận được khoảng 5% tỷ lệ falure trên thậm chí cập nhật chỉ sprocs. –