有一个Employee表,其中包含employee_id和employee_name
我想在这张桌子上插入“詹姆斯”
如果Employee表已经有一个“james”记录,我希望他的employee_id被返回
如果表中有多个“james”记录(重复),则不执行任何操作并跳过
如果没有“james”,我想插入“james”并返回新的employee_id
伙计们如何为此编写查询。
更新:我question 的另一个人的答案解决了这个问题。谢谢大家的指导,
答案 0 :(得分:0)
您需要编写存储过程来执行此操作。你对他们熟悉吗?或者,您可以从服务器多次查询数据库。
答案 1 :(得分:0)
我认为MERGE声明正是您要找的。
答案 2 :(得分:0)
如果允许使用@@ Rowcount函数:
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