PDA

View Full Version : سوال: مي خواهم اين رکورد را داشته باشم



nazanintaraneh
پنج شنبه 07 آبان 1388, 10:15 صبح
سلام دوستان
من يک sp نوشته ام که درست کارميکند :

ALTERPROCEDURE [dbo].[DownloadCount_SP]
@FileCodesql int
ASBEGIN

update

[File]

set


DownloadCount=DownloadCount+1

Where


FileCode = @FileCodesql


END
حالا مي خواهم يک امکان به آن اضافه کنم :
اينکه اين رکوردي را که در آن تغيير ايجادکرده ام (‌فيلد DownloadCount آن را يک واحد اضافه کرده ام )‌ همه فيلدهايش را داشته باشم ،‌
فکر مي کنم بايد يک Select بنويسم ،‌ اما نمي دانم کجا و چطور؟

اين Query رانوشتم اما syntax error مي دهد:

select * from [file] where (update [File]
set DownloadCount=DownloadCount+1
Where FileCode = '1')

محمد سلیم آبادی
پنج شنبه 07 آبان 1388, 13:14 عصر
سلام، اینو امتحان کن:


ALTER PROCEDURE [dbo].[DownloadCount_SP]
@FileCodesql int
AS
BEGIN
update [File]
set DownloadCount=DownloadCount+1
Where FileCode = @FileCodesql

Select *
From [File]
Where FileCode = @FileCodesql
END

محمد سلیم آبادی
سه شنبه 12 آبان 1388, 10:35 صبح
از ماده ی Output نیز می توانید استفاده کنید. به این شکل که بلافاصله بعد از Set از ماده ی Output به همراه پیشوندهای Inserted و Deleted استفاده کنید. با این کار شما همراه با Update کردن، سطرهایی که Update شده اند را نیز Selete خواهید کرد.



ALTER PROCEDURE [dbo].[DownloadCount_SP]
@FileCodesql int
AS
BEGIN
update [File]

set DownloadCount=DownloadCount+1
output
inserted.Col1,
inserted.Col2,
inserted.Col3
Where FileCode = @FileCodesql
END