PDA

View Full Version : مشکل در Trigger



micro24
سه شنبه 06 بهمن 1388, 08:08 صبح
با سلام

من یک تریگر نوشتم که پس از Insertیکسری اطلاعات از پایگاه دادم Insert می کند توی table دیگر در پایگاه داده دیگر در همان سرور واین دستور را با Open row set نوسته ام ولی errorزیر را می گیرد

Transaction context in use by another session.

اگر امکان دارد من را راهنمایی نمایید.

با تشکر

حسین شهریاری
سه شنبه 06 بهمن 1388, 09:46 صبح
سلام

دوست عزیز نیازی به OPENROWSET نیست اگر پایگاه داده شما روی همان سرور هست دستور Insert را به شکل زیر استفاده کنید:یعنی آدرس جدول مربوطه را بصورت سلسله مراتبی بدین.

مثلا اگر در پایگاه داده فرضی DB1 هستید و میخاین توی Table1 از DB2 اطلاعات بریزید اینطور بنویسید:


Insert into DB2.dbo.Table1 values(100,'Ali','Hasani')

لازم به ذکر است حتی اگر پایگاه روی سرور دیگری بود یک سلسله به مرحله بالا اضافه میشد.یعنی باید نام و آدرس سرور را هم میدادید.(به شرط برقرار بودن یک ارتباط بین دوسرور).

موفق باشید

micro24
سه شنبه 06 بهمن 1388, 10:11 صبح
سلام

دوست عزیز نیازی به OPENROWSET نیست اگر پایگاه داده شما روی همان سرور هست دستور Insert را به شکل زیر استفاده کنید:یعنی آدرس جدول مربوطه را بصورت سلسله مراتبی بدین.

مثلا اگر در پایگاه داده فرضی DB1 هستید و میخاین توی Table1 از DB2 اطلاعات بریزید اینطور بنویسید:


Insert into DB2.dbo.Table1 values(100,'Ali','Hasani')لازم به ذکر است حتی اگر پایگاه روی سرور دیگری بود یک سلسله به مرحله بالا اضافه میشد.یعنی باید نام و آدرس سرور را هم میدادید.(به شرط برقرار بودن یک ارتباط بین دوسرور).

موفق باشید

با سلام متشکرم از شما ولی من نمی توانم از این دستور استفاده نمایم چون بایدبه کاربران دیگر به پایگاه دادم دستزسی بدهم ومن نمی خواهم دسترسی داده شود .مرسی

micro24
چهارشنبه 07 بهمن 1388, 09:48 صبح
با سلام متشکرم از شما ولی من نمی توانم از این دستور استفاده نمایم چون بایدبه کاربران دیگر به پایگاه دادم دستزسی بدهم ومن نمی خواهم دسترسی داده شود .مرسی


سلام اگر امکان دارد من را راهنمایی نمایید.

با تشکر

ASKaffash
چهارشنبه 07 بهمن 1388, 10:05 صبح
سلام
اگر اینطوری است از LinkedServer استفاده کنید

micro24
چهارشنبه 07 بهمن 1388, 11:00 صبح
سلام
اگر اینطوری است از LinkedServer استفاده کنید

با سلام من به این صورت نوشتم از یک پایگاه داده می خواهم به پایگاه داده دیگر Insert کنم ولی Userهای دیگر نباید Permissionپایگاه داده myserver داشته باشند
Insert into

[myserver].[mydatabase].[dbo].[mytable]
(x,y)

values

(@x,@Y)

درست است؟با تشکر

ASKaffash
چهارشنبه 07 بهمن 1388, 13:31 عصر
سلام
برای بالای 2005 و تنظیم کردن LinkedServer بلی درست است.

micro24
چهارشنبه 07 بهمن 1388, 14:06 عصر
سلام
برای بالای 2005 و تنظیم کردن LinkedServer بلی درست است.
سلام خیلی متشکرم