2010-02-12 74 views
0

我建立一個存儲過程。如果具有特定值的記錄不存在,則此存儲過程需要插入記錄。如果該值確實存在,則需要更新記錄。我遇到的問題是確定具有給定值的記錄是否存在。我正在使用以下代碼:SQL - 計數返回的記錄

DECLARE @record1ID as char(36) 
SET @record1ID = (SELECT TOP 1 ID FROM Person WHERE [Role]='Manager') 

DECLARE @record2ID as char(36) 
SET @record2ID = (SELECT TOP 1 d.ID FROM Department d WHERE d.[ManagerID][email protected]) 

-- If @record2ID is set update record, otherwise add record 
-- how do I setup this if/else statement? 

謝謝!

回答

0
IF (EXISTS YOUR_SELECT) 
BEGIN ... 

IF (@record2ID IS NULL) 
BEGIN ... 

,或者使用select count(*)而不是選擇一個值

1

如果這是一個SQL Server作爲它的樣子,你可以做這樣的計數:

聲明@rec_counter爲INT

集@rec_counter = 0

選擇@rec_counter =計(*)FROM部d其中d。[經理ID] = @ RECORD1

如果(@rec_counter> 0)

開始

-- do whatever here