2011-02-25 97 views
0

我需要哪些必須做兩個更新和插入查詢..帶插入的更新查詢?

首先我要檢查這個條件

SELECT TOP 1 * FROM NEC_Customer_DB_Map where DB_AvailabilityFlag = 'Y' 

如果DB_AvailabilityFlag = 'Y'我要更新這個'Y''ASSIGNED',也是我 有通過使用插入

INSERT INTO NEC_Customer_DB_Map(NEC_CustomerCode,NEC_CustomerName) VALUES(@NEC_CustomerCode,@NEC_CustomerName) 

任何人都可以將這些組合成一個查詢..任何建議?

+0

1.您是否在說如果更新成功,您只應該執行'insert'操作?如果不是,你爲什麼要困擾它們呢?如果是這樣,我只是做更新,然後檢查'@@ ROWCOUNT' 2.如果沒有'ORDER BY'子句,'TOP'不是確定性的。 – 2011-02-25 12:37:02

+0

@Martin:否DB_AvailabilityFlag ='Y'表示我會選擇頂部1 *,然後我將'Y'更改爲'ASSIGNED',並將值插入其他列 – bala3569 2011-02-25 12:49:33

+0

對此問題「否」是答案「您是否說如果更新成功,你應該只做插入「?如果是,那麼'@ NEC_CustomerCode'和'@ NEC_CustomerName'的值應該是從更新的行派生的?如果不是''insert'與'update'有什麼關係? – 2011-02-25 12:58:14

回答

-1

你可以使用一個where條款,使插入條件:

INSERT INTO NEC_Customer_DB_Map(NEC_CustomerCode,NEC_CustomerName) 
SELECT @NEC_CustomerCode,@NEC_CustomerName 
WHERE EXISTS (SELECT * FROM NEC_Customer_DB_Map where DB_AvailabilityFlag = 'Y') 
+0

這完全沒有更新部分。 – 2011-02-25 12:24:42

+0

我需要'Y'作爲'ASSIGNED',它是頂級1 * – bala3569 2011-02-25 12:25:40