合并并返回一个id

时间:2015-03-24 14:48:06

标签: sql-server sql-server-2012

我试图创建一个过程,当找到一个匹配输入值的行时,它返回那些行ID,如果找不到匹配的行,则插入值并输出插入的ID。该ID是一个标识字符。

我一直在尝试修改以下代码(假字段),但我不认为我可以在此代码中执行我想要的操作。

    CREATE PROCEDURE [dbo].[upsertProc]
        @ID    varchar(20),
        @Input varchar(20)
    AS
        MERGE INTO table
    USING 
        (SELECT @Input AS 'Input', @ID AS 'ID') AS Query
        -- Search predicates
        --
        ON Query.ID = table.ID
    WHEN MATCHED THEN
        -- Update part of the 'UPSERT'
        --  
        UPDATE SET
            table.Input=Query.Input
    WHEN NOT MATCHED THEN
        -- INSERT part of the 'UPSERT'
        --
        INSERT (Input) VALUES(Query.Input);
    RETURN 0

有没有办法制作这种程序?

1 个答案:

答案 0 :(得分:0)

将此添加到您的程序结束时:

SELECT SCOPE_IDENTITY()

它适用于INSERT的{​​{1}}和UPDATE部分。