2012-12-17 120 views
-1

表1:更新只新記錄的sql

ID Name Number 
1 James 2344 

如果我寫

Update Table(Name,Number) set Name = "James", Number = "11111"

現在名稱=詹姆斯保持不變,號碼是新的......但是當觸發作好準備它顯示所有字段已更新。

+0

我想只更新新的字段..有什麼辦法可以在SQL中檢查這個嗎 –

+0

你是什麼意思的新行?你如何識別新行? –

+0

這是一個棘手的任務 - 你必須檢查是否更新前的字段已更改 – codingbiz

回答

1
UPDATE tableName 
SET Number = 11111 
WHERE Name = 'James' 

你應該有一個WHERE子句條件所以只能James將被更新。

+0

否我的意思是我有一個場景,我正在更新與單個複選框的網格,我想知道哪個字段只更新... 我必須在所有字段中使用更新語句,但所有字段都沒有新的值...您有沒有收到我? –

+2

然後,您需要所有檢查的網格鍵的鍵來更新行,爲所有檢查的行獲取DataKeyNames值並更新數據。 –

+0

謝謝明白了! –

0

好像我明白你會首先檢查數據是否存在以及是否相同。 但如果你製作UPDATE所有它將是相同的,如果用戶名是TIMUPDATE它將是相同的TIM只運行一個sql來首先檢查。

您換新顏錯誤

嘗試做到這一點

UPDATE tablename SET number = 11111, SET name = 'James' WHERE ID = 1 

這樣說,這將更新number但名稱將保持James

  • UPDATE將只更新改變的值

編輯: 插入之前選擇其gona。

我認爲這是值得改變的 - 但可能不值得在插入前做一個選擇。

+0

但是,當你有一個觸發器...你會得到兩個字段更新插入像這樣 如果更新(學生名稱)檢查觸發器 –

+0

看到我更新。 –

+0

你爲什麼要在asp.net/sql問題中發佈php答案?你可以在asp.net中解釋你的答案嗎? –