Nicht sicher, ob IF/ELSE der richtige Weg für die folgenden ist. Es gibt immer ELSE zurück, so dass es scheint, dass es nicht richtig funktioniert.TSQL IF/ELSE oder CASE (UPSERT)
IF ((SELECT COUNT(CAST(StudentuserID AS int)) FROM StudentAttendance WHERE StudentUserID=1)>0)
PRINT 'Yes'
ELSE
PRINT 'No'
Dieser Test sollte in yes
führen, da die Daten 8>0
ist, werde ich PRINT
mit einer UPDATE
ELSE INSERT
Anweisung ersetzt werden.
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) kann UPSERT . –
@AlexK. Hast du ein Beispiel? – UserSN
https://stackoverflow.com/questions/2479488/syntax-for-single-row-merge-upsert-in-sql-server –