ورود

View Full Version : ایجاد یک DATA_VIEW در یک STORE PROCEDURE



sh_m
دوشنبه 16 خرداد 1384, 12:04 عصر
سلام دوستان
خسته نباشید. من خیلی توی این بخش جستجو کردم ولی مطلبی راجع به ایجاد DATA VIEW در داخل STORE PROCEDURE پیدا نکردم .لطفا منو راهنمایی کنید .
من قبلا بوسیله گزینه داخل SQL ENTERPRIZE MANAGER این کار رو انجام می دادم ولی امکان جدیدی به برنامه ام اضافه کردم که جدول جدید ایجاد میشه پس باید VIEWهای مربوط به اون جدول نیز دوباره از داخل برنامه و از طریق STORE PROCEDURE ایجاد بشه .
وقتی دستور CREATE STORE PROCEDURE را داخل SP وارد می کنم خطا می ده.
به همین خاطر به کمک شما احتیاج دارم.
قبلا متشکرم.

AminSobati
دوشنبه 16 خرداد 1384, 18:54 عصر
دوست عزیزم البته کمی برای من عجیبه که داخل SP قصد ساخت View دارین چون View باید از قبل ساخته بشه تا سایر اجزاء برنامه ازش استفاده کنن ولی به هر حال از طریق Dynamic TSQL Execution این کار انجام شدنیه:

CREATE PROC Test
AS
DECLARE @Var1 VARCHAR(1000)
SET @Var1='CREATE VIEW TestView AS SELECT * FROM Northwind..Customers'
EXEC (@Var1)
GO

sh_m
پنج شنبه 19 خرداد 1384, 10:30 صبح
سلام
آقای ثباتی عزیز
خیلی از کمکتون متشکرم لطف کردید.
اگه یادتون باشه قبلا یک بحث در مورد ایجاد دوره مالی در برنامه حسابداری توسط سایر دوستان مطرح شده بود .من با این مورد برخورد کرده بودم و به این نتیجه رسیدم که در یک database برای هر دوره مالی که سالانه ایجاد میشه یک جدول خالی به همراه تمام view های مربوط به اون ایجاد بشه . و store procedure ها نیز طوری طراحی بشه که در جدولی که ما بهش می فرستیم اعمال مربوطه را انجام بدن .
من با صرف وقت زیاد جواب گرفتم و در حال حاضر مشکلی ندارم .آیا به نظر شما راه حل خوبی رو انتخاب کردم ؟ و در آینده دچار مشکل نخواهم شد؟(خدای نکرده) :گیج: کمی نگرانم.

AminSobati
جمعه 20 خرداد 1384, 16:46 عصر
راستش من به درستی نمیدونم که حکمت ساختن جدول جدا برای هر سال مالی چیه. شاید بهتر باشه شما یک جدول فعال (Live Data) داشته باشین و یک جدول آرشیو، که اطلاعات تمام سالهای گذشته در آرشیو قرار میگیرند. با داشتن ایندکسهای مناسب میشه سرعت خوبی در Queryها داشت. اصولا داشتن جداول زیاد که یک هدف رو تامین میکنند(مثل سالهای مالی)، همونطور که گفتین لازم خواهد داشتن که Viewهای زیادی هم داشته باشیم. مگر اینکه این کار یک توجیه دیگه ای داشته باشه...
ولی شاید دلیلی داشته باشه که دوستان اون روش رو توصیه کردند، من دلیلش رو نمیدونم..