PDA

View Full Version : سلکت و آپديت در يک Sp



bftarane
جمعه 08 دی 1391, 19:45 عصر
سلام.
من سه تا جدول دارم
به صورت زير
جدول MenuItem که داراي کليد اوليه CategoryId هست: کليد اوليه CategoryId
جدول واسطي به اسم MenuMeta: داراي دو کليد ثانويه MetaId، ‍CategoryId
و جدول سومي به اسم tbl_Meta: کليد اوليه MetaId
حالا من مي خوام فقط با داشتن CategoryId برم و فيلد Keyword رو در جدول tbl_Meta آپديت کنم.
راه زير به فکرم رسيده ولي نمي دونم چطور يه سلکت و آپديت رو با هم انجام بدم.

ALTER procedure [dbo].[UpdateMetaTags]
(
@CategoryId int,
@keywords ntext
)
as
begin
update tbl_meta set keywords=@keywords where
select tbl_meta.keywords,tbl_meta.description,MenuItem.Na me,tbl_MenuMata.CategoryId,tbl_MenuMata.metaID
from tbl_meta,MenuItem,tbl_MenuMata where MenuItem.CategoryId=@CategoryId and tbl_MenuMata.CategoryId=@CategoryId and tbl_meta.metaID=tbl_MenuMata.metaID
end


ممنونم ميشم کمکم کنيد.

ferdin
جمعه 08 دی 1391, 20:02 عصر
سلام

کد زیرو نگاه کن :


Update tbl_meta
set tbl_meta.keywords=@keywords
From tbl_meta
inner join MenuItem On tbl_meta.MetaID = MenuItem.metaId
where MenuItem.CategoryID = 13

bftarane
جمعه 08 دی 1391, 21:02 عصر
سلام. من جدول MenuItem ام metaId نداره پس من نمي تونم اين رو بنويسم tbl_meta.MetaID = MenuItem.metaId فکر مي کنم يه جوري بايد جدول واسط رو هم دخالت داد که اسمش هست tbl_MenuMeta
يعني اين tbl_MenuMeta کليد اوليه جدول MenuItem و کليد اوليه جدول tbl_meta رو داره
و يه سه فيلد ديگه هم داره يعني آي دي خودش، keywords، Description
و اون دو تا جدول اول هيچي درباره متا نگه نمي دارن.

ferdin
جمعه 08 دی 1391, 21:10 عصر
سلام

آره حق با شماست اسم جداولتون برای من یکم واضح نیست.

کد به صورت زیر می شه.



ALTER procedure [dbo].[UpdateMetaTags]
(
@CategoryId int,
@keywords ntext
)
As
begin


Update tbl_meta
set tbl_meta.keywords=@keywords
From tbl_meta
inner join MenuMeta On tbl_meta.MetaID = MenuMeta.metaId
where MenuMeta.CategoryID = @CategoryId



end

bftarane
جمعه 08 دی 1391, 21:41 عصر
ازتون خيلي خيلي ممنونم. درست شد.