2012-10-05 70 views
0

我對於「更新」數據庫非常陌生,因爲我只將查詢寫爲select語句。更新聲明澄清

我有一條記錄,我需要從數據庫中刪除或更改。我會怎麼做呢?讓我們先更新一列。

我想更新「客戶」表和「SNumber」列,其中「TicketNum」列爲「123」現在該記錄的「SNumber」是空白的,我希望它是「115 「

我在想:

update Customer 
set snumber = '115' 
where ticketnum = '123' 

很顯然,我不想害怕搞亂數據庫運行此查詢。

第二部分是我將如何一起刪除記錄?

謝謝

+0

創建數據庫的備份,或者至少創建表的一個副本。運行這個:SELECT * INTO Customer_temp FROM Customer。您將擁有表格的完整副本。 –

+0

如果您對應用更新感到非常緊張,您可能需要考慮啓用[隱式事務](http://msdn.microsoft.com/zh-cn/library/ms188317(v = sql.105))。aspx)暫時。這樣,你的改變永久化的唯一方法就是如果你「提交」。如果一切都出錯了,你可以'ROLLBACK'(或關閉你的連接)。 –

回答

2

這是正確的。

記住你可以更新,然後發出ROLLBACk,如果你需要撤消它。

刪除是相似的:

delete customer where ticketnum = 123; 
+0

讓我評論一下,表顧客 - 可能不應該有一個列ticketnum ...這似乎是一個設計問題 – Randy

+0

我只是列了名稱。你能解釋一下ROLLBACK嗎? – Shmewnix

+0

ROLLBACK說 - 撤銷我最後的更改,COMMIT說適用我最後的更改。 – Randy

2

如果你是新的,我建議尋找關於使用T-SQL的CRUD操作。例如:

至於你的問題。你不會用那個UPDATE子句搞亂數據庫,它是正確的。

刪除的行只是使用:

DELETE FROM Customer 
WHERE ticketnum = '123' 

ROLLBACK,建議對對方的回答,有助於回滾,這是不正確或erroneus或者僅僅因爲一些數據是不正確的動作(交易)。見MSDN for ROLLBACK sintax

這與TRANSACTIONS概念密切相關。

0

在SQL更新的一般形式是 UPDATE表 SET列=表達 WHERE謂詞;

和一個例子是 UPDATE供應商 SET描述= '大猩猩玻璃',產物= '屏幕' WHERE NAME = '康寧';

正如其他海報所指出的,您的SQL更新是正確的。