2010-07-19 109 views
0

我有一個聯繫我們表包含名稱emailid phoneno消息repliedmessage作爲字段,默認情況下回復的消息字段爲空後答覆一個特定的消息我正在更新該字段,但在同一時間我也想要使用select語句檢索其他值,如名稱和emailid選擇並更新單個查詢

+0

我沒有理解你的意思。你想更新一個或多個記錄,然後*顯示一些其他記錄? – frabiacca 2010-07-19 10:45:36

+0

你說得對嗎任何方式我得到了答案,並感謝您的迴應 – Mac 2010-07-19 11:08:46

回答

1

你是說你正在更新多行還是隻有一行?

如果要更新多個行,可以將受影響的行ID選擇到臨時表中,執行更新,然後在更新的表上返回tmp表ID的連接。

如果您要更新單個行,請在更新後對該行執行一次選擇。

可維護性在同一時間嘗試兩個操作是有害的,除非情況的邏輯在稍後表明它是必需的。

您可以在表格上始終擁有一個簡單的LastUpdated DATETIME字段。然後,您只需要一個您設置爲getdate()並在更新期間使用的變量。更新後,只需返回LastUpdated與datetime變量匹配的每一行。

如:

declare @opTime datetime 
set @opTime = getdate() 

update .... (...., LastUpdated) values (....., @opTime) 

select * from ... where LastUpdated = @opTime