PDA

View Full Version : سوال: query update generate شده توسط ویزارد دیتاست



sa_ostad
یک شنبه 05 اردیبهشت 1389, 09:05 صبح
درود به همه اساتید
وقتی از طریق ویزارد دیتاست update query می سازم به طور پیش فرض برای فیلدهایی که allow null هستن شرط میزاره و این query رو خیلی پیچیده و طولانی می کنه :

UPDATE [tblArticle] SET [ArticleSubjectID] = @ArticleSubjectID, [ArticlePaneID] = @ArticlePaneID, [ArticleTitle] = @ArticleTitle, [ArticleBody] = @ArticleBody, [ArticleSummary] = @ArticleSummary, [ArticleCreateBy] = @ArticleCreateBy, [ArticleCreateDate] = @ArticleCreateDate, [ArticleStartDate] = @ArticleStartDate, [ArticleExpirationDate] = @ArticleExpirationDate, [ArticleViews] = @ArticleViews, [ArticlePublished] = @ArticlePublished, [ArticlePublishBy] = @ArticlePublishBy, [ArticlePublishDate] = @ArticlePublishDate
WHERE (([ArticleID] = @Original_ArticleID) AND ([ArticleSubjectID] = @Original_ArticleSubjectID) AND ([ArticlePaneID] = @Original_ArticlePaneID) AND ([ArticleTitle] = @Original_ArticleTitle) AND ([ArticleCreateBy] = @Original_ArticleCreateBy) AND ([ArticleCreateDate] = @Original_ArticleCreateDate) AND ((@IsNull_ArticleStartDate = 1 AND [ArticleStartDate] IS NULL) OR ([ArticleStartDate] = @Original_ArticleStartDate)) AND ((@IsNull_ArticleExpirationDate = 1 AND [ArticleExpirationDate] IS NULL) OR ([ArticleExpirationDate] = @Original_ArticleExpirationDate)) AND ((@IsNull_ArticleViews = 1 AND [ArticleViews] IS NULL) OR ([ArticleViews] = @Original_ArticleViews)) AND ([ArticlePublished] = @Original_ArticlePublished) AND ((@IsNull_ArticlePublishBy = 1 AND [ArticlePublishBy] IS NULL) OR ([ArticlePublishBy] = @Original_ArticlePublishBy)) AND ((@IsNull_ArticlePublishDate = 1 AND [ArticlePublishDate] IS NULL) OR ([ArticlePublishDate] = @Original_ArticlePublishDate)));
SELECT ArticleID, ArticleSubjectID, ArticlePaneID, ArticleTitle, ArticleBody, ArticleSummary, ArticleCreateBy, ArticleCreateDate, ArticleStartDate, ArticleExpirationDate, ArticleViews, ArticlePublished, ArticlePublishBy, ArticlePublishDate FROM tblArticle
WHERE (ArticleID = @ArticleID)

لطفا من رو راهنمایی کنید تا این کد رو تحلیل کنم

daffy_duck376
یک شنبه 05 اردیبهشت 1389, 13:59 عصر
نیازی به تحلیل نیست دستورات اضافی رو پاک کن . شرط رو فقط برای کلید اصلی بگذار بقیه اضافه هستن

sa_ostad
یک شنبه 05 اردیبهشت 1389, 14:27 عصر
خودمم همین کارو کردم ولی می خام بدونم چرا اینکارو کرده و اینکار چه سودی داره؟

FastCode
یک شنبه 05 اردیبهشت 1389, 17:46 عصر
verification دوست عزیز.
این کار باعث میشه که در صورت تغییر داده ها دستور update عمل نکنه.

sa_ostad
دوشنبه 06 اردیبهشت 1389, 07:02 صبح
لطفا بیشتر توضیح بدید
سرچ زدم ولی چیزی پیدا نکردم