我有一张表格,其中的数据如下:
SkillId SkillName Experience KnowledgeLevelXId
6 c++ NULL NULL
7 Asp.net NULL NULL
9 Flex NULL NULL
10 Flash builder NULL NULL
我为插入写了一个Sp
ALTER PROCEDURE [dbo].[SkillSettingSave]
(
@SkillName varchar(100)
)
AS
BEGIN
INSERT INTO [HRM_SkillSetting]
(
[SkillName]
)
VALUES
(
@SkillName
)
我需要在sp上面添加更新查询,其中不应重复技能名称。
答案 0 :(得分:0)
您可以使用exists检查是否存在记录。为了避免竞争条件,你可以在一个声明中做到:
ALTER PROCEDURE [dbo].[SkillSettingSave]
(
@SkillName varchar(100)
)
AS
BEGIN
INSERT INTO [HRM_SkillSetting]
(
[SkillName]
)
-- Instead of using values you might use select
SELECT @SkillName
-- And insert row only if it does not exists
WHERE NOT EXISTS (SELECT NULL
FROM [HRM_SkillSetting]
WHERE SkillName = @SkillName
)
END