Gần đây tôi đã gia nhập một công ty và tôi chỉ nhận thấy rằng nhiều thủ tục được lưu trữ có cùng một phần mã được lặp đi lặp lại trong suốt. Tôi nhận thấy vì tôi được giao nhiệm vụ thay đổi một phần nhỏ của mã đó trong mỗi SP mà nó xảy ra :)
Nó là một đoạn mã khá lớn, khoảng 30 dòng. Mã này là một phần của câu lệnh chèn và về cơ bản nó kết hợp 4 bảng với các WHERE/AND
điều kiện không thực sự thay đổi từ SP sang SP. Nó trông tương tự như dưới đây:
...
...
FROM <TableOne>
INNER JOIN <TableTwo> ON ...
AND .....
AND .....
LEFT JOIN <TableThree> ON ...
AND .....
AND .....
WHERE .....
AND .....
AND .....
AND MedicalPlanCode IN ('abc', 'def', 'ghi')
Phần duy nhất thay đổi từ SP sang SP là các giá trị ( 'abc', 'def', 'ghi' )
Cũng có thể có số lượng khác nhau của các giá trị đó, vì vậy một số SP sẽ có 2 giá trị, một số khác sẽ có 5, v.v ...
Tất cả mọi thứ tôi nghĩ về việc thay đổi phần mã đó thành SQL động và tôi không chắc liệu điều đó có đáng không. Tuy nhiên, lập trình viên trong tôi ghét tình huống này.
Tôi có nên thử thực hiện một số hình thức tái sử dụng mã? Nó sẽ có ROI? Những lựa chọn của tôi là gì? Tôi đã phải trải qua ~ 100 thủ tục lưu trữ, mất khoảng một giờ.
100 SP được trải rộng trên 20 cơ sở dữ liệu khác nhau. Tôi có quyền để tạo ra một cái nhìn.