Kimliği geçme:
Buradaki fayda, saklı yordamlarınıza tüm arabirimleri basitleştirmenizdir.
Bu, kodlamayı kolaylaştırır. SP'yi çeşitli yerlerden çağırırsanız, sadece birkaç parametre yüklemek ve aktarmak yerine tek bir parametre kullanmanız gerekir.
n Değişkenleri Geçiş:
Öyleyse buradan faydalanabilirsiniz, saklanan Prosedürleri, tutucu masadan 'ayırabilirsiniz'.
Bu, tablodaki herhangi bir veri olmadan doğrudan saklanan prosedürleri doğrudan çağırmanız anlamına gelir. Bu, verilerin yeni bir şekilde gelmesi veya ünite testi vb. İçin gelecekte faydalı olabilir.
Hangisi en iyisi:
Bunun doğru bir yanıtı olduğunu düşünmüyorum, daha çok tercih ve görüş konusu.
Benim düşüncem daha az sıkışık olan şeylerin daha iyi olduğu. Değişiklikler karşısında daha esnek.
Yapmamın yolu şu şekildedir ...
CREATE PROCEDURE main_by_variable @v1 INT, @v2 INT, ...
BEGIN
EXEC sub_part_1 @v1, @v3
EXEC sub_part_2 @v2
EXEC sub_part_3 @v2, @v3
...
END
CREATE PROCEDURE main_by_id @id INT AS
BEGIN
DECLARE
@v1 INT,
@v2 INT,
...
SELECT
@v1 = field1,
@v2 = field2
FROM
holding_table
WHERE
id = @id
EXEC main_by_variable @v1, @v2, ...
END
GO;
main_by_variable prosedürüne sahip olarak, tüm alt prosedürleri test etme gibi, tutma tablosuna herhangi bir veri girmek zorunda kalmadan, yanıltıcı olursunuz. Ve bu esneklik de alt prosedürlerin bir parçasıdır.
Ancak, kolaylık sağlamak için
main_by_id kullanarak daha düzenli olduğunu görebilirsiniz. Bu sadece main_by_variable etrafında bir sarmalayıcı olduğundan, yaptığınız tek şey işlemdeki tek bir adımı kapsüllemek (tablodan veri almak).
Ayrıca veri toplama bölümü etrafında bir işlem yapmanıza ve verileri tablodan silmenize de olanak tanır. Veya diğer birçok seçenek. Esnek ve esnek olmayı severim.