IF/ELSEが次のような正しい方法であるかどうかは不明です。それは常に正しく動作しないようにELSEを返します。TSQL IF/ELSEまたはCASE(UPSERT)
IF ((SELECT COUNT(CAST(StudentuserID AS int)) FROM StudentAttendance WHERE StudentUserID=1)>0)
PRINT 'Yes'
ELSE
PRINT 'No'
データが8>0
であるとして、このテストでは、私がELSE UPDATE
INSERT
文でPRINT
を交換するyes
を生じるはずです。
IF ((SELECT COUNT(CAST(StudentuserID AS int)) FROM StudentAttendance WHERE StudentUserID=1)>0)
UPDATE StudentAttendance
SET
CID = CAST('[querystring:CID]' AS int),
CalendarEventID = CAST('[querystring:CEID]' AS int),
StudentUserID = CAST('[StudentUserID]' AS int),
Attendance = '[Attendance]'
ELSE
INSERT INTO StudentAttendance
(CID,CalendarEventID,StudentUserID,Attendance)
VALUES
(CAST('[querystring:CID]' AS int), CAST('[querystring:CEID]' AS int), CAST('[StudentsUserID]' AS int),'[Attendance]')
[ 'MERGE'(https://docs.microsoft.com/en-us/sql/t-sql/statements/merge-transact-sql)アップサートすることができる:ここではその基本的な例であります。 @AlexK。 –
あなたは例がありますか? – UserSN
https://stackoverflow.com/questions/2479488/syntax-for-single-row-merge-upsert-in-sql-server –