0

次のようにデータが与えられたテーブルがあります

  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に更新クエリを追加する必要があります。

4

1 に答える 1

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
于 2012-07-13T11:11:49.187 に答える