IF/ELSE가 다음을 수행하는 올바른 방법인지 확실하지 않습니다. 항상 제대로 작동하지 않는 것처럼 ELSE를 반환합니다. 데이터가 나는 ELSE INSERT
문 UPDATE
으로 PRINT
교체됩니다 8>0
같이TSQL IF/ELSE 또는 CASE (UPSERT)
IF ((SELECT COUNT(CAST(StudentuserID AS int)) FROM StudentAttendance WHERE StudentUserID=1)>0)
PRINT 'Yes'
ELSE
PRINT 'No'
이 테스트는 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) upsert 수 여기에 기본적인 예는 . –
@AlexK 당신은 모범이 있습니까? – UserSN
https://stackoverflow.com/questions/2479488/syntax-for-single-row-merge-upsert-in-sql-server –