【发布时间】:2020-03-31 01:26:19
【问题描述】:
我真的不知道我的程序出了什么问题,有人明白这个问题吗?
消息 102,级别 15,状态 1,过程 merge_table_from_json,第 19 行 [批处理开始第 0 行]
'tgt' 附近的语法不正确
我的代码:
ALTER PROCEDURE merge_table_from_json
(@json nvarchar(max))
AS
BEGIN
-- Delete From dbo.ExpensesScratch;
-- Insert Into dbo.ExpensesScratch
-- SELECT Id, Amount, StudentName
-- FROM OPENJSON(@json)
--
-- WITH (Id uniqueidentifier,
-- Amount real,
-- StudentName NVARCHAR(50))
MERGE dbo.Expenses AS tgt
USING dbo.ExpensesScratch AS src ON (tgt.Id = src.Id)
WHEN MATCHED THEN
UPDATE SET tgt.Amount = src.Amount,
tgt.StudentName = src.StudentName
WHEN NOT MATCHED by tgt THEN
INSERT (Id, Amount, StudentName)
VALUES (src.Id, src.Amount, src.StudentName)
WHEN NOT MATCHED by src THEN
DELETE;
-- OUTPUT section,
-- DELETED.Id AS tgtId,
-- DELETED.StudentName AS tgtSudentName.
-- DELETED.Amount AS tgtAmount,
-- INSERTED.Id AS srcId,
-- INSERTED.StudentName AS srcStudentName,
-- INSERTED.Amount AS srcAmount
SELECT @@ROWCOUNT
END
【问题讨论】:
-
您是否尝试根据文档验证您的语法? docs.microsoft.com/en-us/sql/t-sql/statements/…
标签: sql-server tsql merge