有一個僱員表有employee_id和employee_name
我想插入「詹姆斯」到這個表。
如果Employee表中已經有一個「詹姆斯」的記錄,我想退回他的僱員標識
如果表中有一個以上的「詹姆斯」的記錄(複製)什麼也不做,跳過
如果沒有「詹姆斯」,我想要插入「詹姆斯」和新的employee_id將返回這種情況下的SQL查詢?
夥計們如何爲此編寫查詢。
更新:我的另一個question的答案解決了這個問題。感謝您的指導,
有一個僱員表有employee_id和employee_name
我想插入「詹姆斯」到這個表。
如果Employee表中已經有一個「詹姆斯」的記錄,我想退回他的僱員標識
如果表中有一個以上的「詹姆斯」的記錄(複製)什麼也不做,跳過
如果沒有「詹姆斯」,我想要插入「詹姆斯」和新的employee_id將返回這種情況下的SQL查詢?
夥計們如何爲此編寫查詢。
更新:我的另一個question的答案解決了這個問題。感謝您的指導,
您需要編寫一個存儲過程來執行此操作。你對他們熟悉嗎?或者,您可以從服務器多次查詢數據庫。
如果允許@@行數函數中使用:
DECLARE @EmployeeId int SELECT TOP 2 @EmployeeId = employee_id FROM @Employee WHERE employee_name = 'james' IF @@Rowcount > 1 BEGIN PRINT 'Many matching rows found' RETURN; END IF @EmployeeId IS NULL -- INSERT ... ELSE -- RETURN @EmployeeId
伊萬,你的意思是在測試中有「不是空」嗎?如果該值不爲空,那麼select語句找到一些數據,對不對? – 2010-11-20 13:44:00
謝謝!我修復了它。 – 2010-11-21 13:48:56
感謝您的快速回復。實際上,整個事情都是在一個存儲過程中進行的。我可以做一些「如果」的事情。但我想可能有一個單一的SQL語句來做重複檢查。 – vijay 2010-11-20 07:58:14
我會繼續與ifs。我無法想出一個按您希望的方式行事的單一查詢。可能是 – 2010-11-20 08:26:24