سه شنبه, ۳ بهمن ۱۳۹۶، ۰۳:۴۸ ب.ظ
فراخوانی پروسیجر به صورت Nested
فرض کنید سه تا پروسیجر با نام های sp1 و sp2 و sp3 داریم. داخل پروسیجر sp2 ، ما پروسیجر اول یعنی sp1 را فراخوانی می کنیم و از داده آن به صورت Insert در یک tempTable استفاده می کنیم.
در پروسیجر سوم یعنی sp3 ، ما پروسیجر دوم sp2 که خود در دلش یک پروسیجر دیگر را فراخوانی کرده است را فراخوانی می کنیم که با خطای :
An INSERT EXEC statement cannot be nested
مواجه می شوید. در واقع شما می خواهید به صورت نستد (Nested) پروسیجر ها را فراخوانی کنید.
برای رفع این خطا و رسیدن به هدف ، لازم است پروسیجر دوم را که خود شامل یک پروسیجر دیگر نیز می باشد در یک table_value Function فراخوانی کنید و داده را در یک table بریزد و حالا در پروسیجر سوم فانکشن را فراخوانی کنید.
می توانید در پروسیجر سوم از table ارسالی این فانکشن استفاده کنید.
مطالعه بیشتر : اینجا