でのエラーは、編集:SQL Serverの - MERGE
:私はマイクロソフトのSQLServer 2014年にMERGEを使用しようとしているが、私は、ターゲット表の構文エラーを取得していますをテーブル構造を入れて、実際のMERGE
MERGE VALORATION_DETAIL_INPUTS_LIMIT AS Target
USING (VALUES (922, 4098)) AS Source(idValoration, idDetValInput)
ON (Source.idValoration = Target.idValoration AND Source.idDetValInput = Target.idDetValInput)
WHEN MATCHED THEN
UPDATE SET idSubject = 1633, idGood = 1114, idWarranty = 7519, idSubWarranty = 7520, units = 1.000000,
unitPrice = 250.000000, limit = 250.000000, percTax = 21.000000, tax = 52.500000, subtotal = 197.500000,
total = 250.000000
WHEN NOT MATCHED BY TARGET THEN
INSERT (idDetValInput, idValoration, idSubject, idGood, idWarranty, idSubWarranty, units,
unitPrice, limit, percTax, tax, subtotal, total)
VALUES(4093, 922, 1633, 1114, 7519, 7520, 1.000000, 250.000000, 250.000000, 21.000000, 52.500000, 197.500000, 250.000000)
OUTPUT $ACTION
エラーがある:
Msg 156, Level 15, State 1, Line ...
Incorrect syntax near the word 'AS'.
表構造:
CREATE TABLE VALORATION_DETAIL_INPUTS_LIMIT
(
idDetValInput bigint NOT NULL,
idValoration bigint NOT NULL,
idSubject bigint NOT NULL,
idGood int NULL,
idWarranty int NULL,
idSubWarranty int NULL,
units real NULL,
unitPrice money NULL,
limit money NULL,
percTax real NULL,
tax money NULL,
subtotal money NULL,
total money NULL
)
クエリに何の "ライン14" を持っていません。 –
まあ、私は以前に "USE"と "GO"を持っています。私はそれを置く必要はないと思った。 –
今、問題は異なります。 "INSERT文には、VALUES句で指定した値よりも多くの列があります。VALUES句の値の数は、INSERT文で指定された列の数と一致する必要があります。ですから、私はINSERTステートメントのVALUES部分に2つの値を最後に追加しても問題ありません。要するに、INSERT文で指定された13個のカラムは、INSERT文のVALUES部分に11個以上のVALUESがあります。そこに提供される必要があるさらに2つの値があります。 – Amit