View Full Version : سوال: بروزرسانی خودکار View از تغییرات جدول
Arghavan_Reza
دوشنبه 01 شهریور 1389, 17:59 عصر
با سلام
فرض از جدول MyTable یک ویو بنام MyView ساخته شده باشد (select * from MyTable)
ممکن است از ویو فوق چند ویو یا تابع دیگر بطور زنجیروار تعریف شده باشند.
می خواهیم وقتی ساختار جدول فوق تغییر میکند تمام ویو ها و توابعی که به نوعی از این جدول استفاده کرده اند بطور خودکار بروز شوند. آیا در sql2000 روشی برای این کار هست؟
AminSobati
دوشنبه 01 شهریور 1389, 23:33 عصر
سلام دوست عزیزم،
از sp_RefreshView استفاده کنید. البته sp_refreshsqlmodule هم هست ولی مطمئن نیستم در 2000 وجود داشته باشه
Arghavan_Reza
سه شنبه 02 شهریور 1389, 10:39 صبح
با تشکر,
RefreshView یک پارامتر به عنوان ورودی میخواهد که نام ویو می باشد. یافتن نام ویوها مشکل نیست. ولی با توجه به اینکه ویوها و توابع باید به ترتیب "ایجاد/طراحی" بروزرسانی شوند به طوری که اگر ویو2 از ویو1 منتج شده باشد, پس اول ویو1 بروزرسانی شود بعد ویو2. راه حل چیست؟
از طرفی پروسه فوق برای ویو صادق است ولی برای توابع نیز نیاز به بروزرسانی است. که در این مورد نیز نیاز به همکاری شما میباشم.
(ضمنا refreshsqlmodule در sql2000 نمیباشد)
AminSobati
سه شنبه 02 شهریور 1389, 20:23 عصر
میتونین Dependencyهای یک View رو از SQL Server بگیرین و اول Viewهای داخلی رو Refresh کنین
Arghavan_Reza
شنبه 06 شهریور 1389, 11:29 صبح
میتونین Dependencyهای یک View رو از SQL Server بگیرین و اول Viewهای داخلی رو Refresh کنین
آیا sp یا برنامه ای می شناسید که بتواند این کار را انجام دهد؟
AminSobati
شنبه 06 شهریور 1389, 14:14 عصر
از sp_depends کمک بگیرین
Arghavan_Reza
یک شنبه 07 شهریور 1389, 13:44 عصر
از sp_depends کمک بگیرین
خروجی sp_depends دو تا جدول است:
1) یکی فهرستی از اشیایی است که در شی مورد نظر استفاده شده.
2) و دیگری اشیایی است که از شی مورد نظر استفاده کرده اند. (مورد نظر)
چگونه میتوان از خروجی sp فوق به صورت یک جدول استفاده کرد؟
AminSobati
یک شنبه 07 شهریور 1389, 21:27 عصر
در TSQL من راهی سراغ ندارم که بشه به خروجی خاصی از یک SP (وقتی چند Result set داره) دست پیدا کرد. چند راه پیش پای شماست:
1) از طریق ADO خروجی sp_depends رو بدست بیارید که بشه روی Result setها جا به جا شد
2) با NET. این کد رو بنویسید و داخل SQL Server استفاده کنید، چنانچه نباید این پردازش خارج از SQL Server انجام بشه
3) متن sp_depends رو بخونین و Queryهایی که انجام میده خودتون اجرا کنین تا Result دلخواه رو واکشی کنید
Arghavan_Reza
دوشنبه 08 شهریور 1389, 11:06 صبح
با تشکر راه سوم که از همه راحت تر و ساده تر است, انتخاب کردم.
در پاسخ خود فرمودید:
در TSQL من راهی سراغ ندارم که بشه به خروجی خاصی از یک SP (وقتی چند Result set داره) دست پیدا کرد.
اگر خروجی sp فقط یک جدول باشد راهش چیست؟
sajjad_kochekian
شنبه 13 شهریور 1389, 00:25 صبح
سلام دوست عزیزم،
از sp_RefreshView استفاده کنید. البته sp_refreshsqlmodule هم هست ولی مطمئن نیستم در 2000 وجود داشته باشه
دستوری که شما معرفی کردید ظاهرا یک ویو را تغییر میدهد.
آیا دستوری هست که کلیه ویو های یک دیتابیس را Refresh کند.
با تشکر
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.