Một điều khá mệt là hệ thống mình kết nối dữ liệu tới database đều sử dụng Store Proc hết, số lượng store proc rất nhiều. Khi sửa tên cột trong table, các store proc nào có gọi đến tên cột của table nó không tự động đổi cho nên khi gọi store proc này sẽ báo lỗi. Thêm 1 điều nữa là khi quyết định xóa 1 table mình phải chắc chắn không có store proc hay view nào đang dùng tới nó.
Sử dụng đoạn lệnh sau để tìm các store proc, view có sử dụng table muốn sửa hay muốn xóa:
- use [Database Name]
- SELECT DISTINCT o.name, o.xtype
- FROM syscomments c
- INNER JOIN sysobjects o ON c.id=o.id
- WHERE c.TEXT LIKE '%tableName%'
SELECT o.name, o.xtype, m.definition FROM sys.sql_modules m INNER JOIN sysobjects o ON m.object_id = o.id WHERE m.definition LIKE '%tableName%'Cách làm này có thể không chính xác tuyệt đối (tìm trong nội dung có chứa tên của table) nhưng cũng khá hiệu quả.
Sao không dùng sp_depends Tên bảng nhỉ.
Trả lờiXóa