2010-02-12 71 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