我试图创建一个过程,当找到一个匹配输入值的行时,它返回那些行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
有没有办法制作这种程序?
答案 0 :(得分:0)
将此添加到您的程序结束时:
SELECT SCOPE_IDENTITY()
它适用于INSERT
的{{1}}和UPDATE
部分。