PDA

View Full Version : فراخواني يك SP از درون پايگاه داده ديگر



mansooreh_64
یک شنبه 26 آبان 1392, 10:53 صبح
سلام دوستان
من يك پايگاه داده دارم كه در واقع پايگاه داده اس ام اس سرورم هست و يه پروسيجري داخل اش دارم كه از اون براي ارسال اس ام اس استفاده ميكنم.
حالا همين پروسيجر رو از داخل يه پايگاه داده ديگه ميخوام استفاده كنم!!!

فرض كنيد ميخوام از داخل پايگاه داده پرسنلي، هربار كه اطلاعات يك پرسنل جديد درون جدول مربوطه درج شد، يه اس ام اس خوشآمدگويي واسش ارسال كنم :لبخند:

فكر ميكنم اينكار رو بايد داخل يه AFTER INSERT انجام بدم، اما چطوري بايد SP داخل يه پايگاه داده ديگه رو اينجا اجرا كنم؟

حمیدرضاصادقیان
یک شنبه 26 آبان 1392, 13:00 عصر
سلام.
برای صدا کردن یک SP از درون یک دیتابیس دیگر به شرطی که داخل یک Instance‌باشند چون در صورتی که در یک Instance‌دیگر باشند نحوه فراخوانی تغییر میکند و باید از Linked Server استفاده کنید.
درحالت اول که ذکر کردم از فرم زیر استفاده کنید.


Exec DatabaseName.SchemaName.ProcedureName
مثال:
Exec Database1.dbo.UspTest

usef64
یک شنبه 08 دی 1392, 14:02 عصر
اگر دو تا DB مون، روی دو سرور مجزا، (با ipهای متفاوت) باشند، چه کار باید کرد؟
مثلا من بخوام از یکی از DBهای منابع انسانی، در برنامه مالی استفاده کنم.

حمیدرضاصادقیان
پنج شنبه 12 دی 1392, 00:17 صبح
در این مورد باید از Linked server استفاده کنید و با استفاده از Linked Server یک ارتباط به سرور دوم داشته باشید و از اون طریق این دستور رو اجرا کنید.

usef64
پنج شنبه 12 دی 1392, 17:42 عصر
میشه یه کم بیشتر توضیح بدید. من الان دارم از طریق ایجاد چند Connection String در برنامم این کارو میکنم. کدومشون درسته؟ مزایای Linked server چیه؟

حمیدرضاصادقیان
جمعه 13 دی 1392, 00:35 صبح
Linked Server تحت کنترل خود SQL Server هست و شما با همون یک Connection میتونید اینکارو انجام بدید و میتونید از لحاظ امنیتی نیز کنترلهایی رو روش لحاظ کنید و بهتون در واقع امکان Distributed Query رو میده که پیشنهاد میکنم از این روش استفاده کنید.

usef64
شنبه 14 دی 1392, 11:17 صبح
میشه لطفا یه منبع (ترجیحا pdf فارسی) در این رابطه بهم معرفی کنید. (اینم بگم که سرچ زدم ولی یه منبع خوب و کامل پیدا نکردم)