فراخواني يك SP از درون پايگاه داده ديگر
سلام دوستان
من يك پايگاه داده دارم كه در واقع پايگاه داده اس ام اس سرورم هست و يه پروسيجري داخل اش دارم كه از اون براي ارسال اس ام اس استفاده ميكنم.
حالا همين پروسيجر رو از داخل يه پايگاه داده ديگه ميخوام استفاده كنم!!!
فرض كنيد ميخوام از داخل پايگاه داده پرسنلي، هربار كه اطلاعات يك پرسنل جديد درون جدول مربوطه درج شد، يه اس ام اس خوشآمدگويي واسش ارسال كنم :لبخند:
فكر ميكنم اينكار رو بايد داخل يه AFTER INSERT انجام بدم، اما چطوري بايد SP داخل يه پايگاه داده ديگه رو اينجا اجرا كنم؟
نقل قول: فراخواني يك SP از درون پايگاه داده ديگر
سلام.
برای صدا کردن یک SP از درون یک دیتابیس دیگر به شرطی که داخل یک Instanceباشند چون در صورتی که در یک Instanceدیگر باشند نحوه فراخوانی تغییر میکند و باید از Linked Server استفاده کنید.
درحالت اول که ذکر کردم از فرم زیر استفاده کنید.
Exec DatabaseName.SchemaName.ProcedureName
مثال:
Exec Database1.dbo.UspTest
نقل قول: فراخواني يك SP از درون پايگاه داده ديگر
اگر دو تا DB مون، روی دو سرور مجزا، (با ipهای متفاوت) باشند، چه کار باید کرد؟
مثلا من بخوام از یکی از DBهای منابع انسانی، در برنامه مالی استفاده کنم.
نقل قول: فراخواني يك SP از درون پايگاه داده ديگر
در این مورد باید از Linked server استفاده کنید و با استفاده از Linked Server یک ارتباط به سرور دوم داشته باشید و از اون طریق این دستور رو اجرا کنید.
نقل قول: فراخواني يك SP از درون پايگاه داده ديگر
میشه یه کم بیشتر توضیح بدید. من الان دارم از طریق ایجاد چند Connection String در برنامم این کارو میکنم. کدومشون درسته؟ مزایای Linked server چیه؟
نقل قول: فراخواني يك SP از درون پايگاه داده ديگر
Linked Server تحت کنترل خود SQL Server هست و شما با همون یک Connection میتونید اینکارو انجام بدید و میتونید از لحاظ امنیتی نیز کنترلهایی رو روش لحاظ کنید و بهتون در واقع امکان Distributed Query رو میده که پیشنهاد میکنم از این روش استفاده کنید.
نقل قول: فراخواني يك SP از درون پايگاه داده ديگر
میشه لطفا یه منبع (ترجیحا pdf فارسی) در این رابطه بهم معرفی کنید. (اینم بگم که سرچ زدم ولی یه منبع خوب و کامل پیدا نکردم)