sa_ostad
یک شنبه 05 اردیبهشت 1389, 10: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)
لطفا من رو راهنمایی کنید تا این کد رو تحلیل کنم
وقتی از طریق ویزارد دیتاست 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)
لطفا من رو راهنمایی کنید تا این کد رو تحلیل کنم