一個SQL Server上,我有以下2014數據庫:SQL Server錯誤:(;)MERGE語句必須用分號來終止
CREATE TABLE dbo.AssetGroupClassification (
ClassificationId int IDENTITY(1,1) NOT NULL,
ClassificationName varchar(25) NOT NULL,
CONSTRAINT [PK_AssetGroupClassification.ClassificationId] PRIMARY KEY CLUSTERED(ClassificationId)
)
GO
CREATE TYPE dbo.AssetGroupClassUDT AS TABLE (
ClassificationId int IDENTITY (1, 1) NOT NULL,
ClassificationName varchar(25) NOT NULL
)
GO
我試圖創建下面的存儲過程:
CREATE PROCEDURE dbo.AssetGroupClassUpsert
@assetGrpClassData AssetGroupClassUDT READONLY
AS
BEGIN
SET XACT_ABORT, NOCOUNT ON
BEGIN TRY
BEGIN TRANSACTION agcUpsertTran
MERGE AssetGroupClassification AS t
USING @assetGrpClassData AS src
ON t.ClassificationId = src.ClassificationId
WHEN MATCHED THEN
UPDATE SET ClassificationName = src.ClassificationName
WHEN NOT MATCHED THEN
INSERT (ClassificationName)
VALUES (src.ClassificationName);
COMMIT TRANSACTION agcUpsertTran
END TRY
BEGIN CATCH
IF @@trancount > 0 ROLLBACK TRANSACTION
DECLARE @errMsg nvarchar(4000) = ERROR_MESSAGE()
RAISERROR (@errMsg, 16, 1)
RETURN 99
END CATCH
END
GO
不過,我收到錯誤:
A MERGE statement must be terminated by a semi-colon (;).
我缺少什麼?分號顯然存在,所以必須有別的東西。
命令已成功完成。 – Devart
我可以毫無問題地運行腳本。你是否將它作爲更大腳本的一部分運行? – GarethD
@ Devart,謝謝,這很有趣 – markblandford