我有表包含以下列empid,month,year,day1,day2,day3,day4 ........... day31。T-SQL/MS SQL SERVER更新使用案例
我已經寫了一個SP來每天更新出席人數,一旦員工登錄。
CREATE PROC PROC_Attendance_update @empid INT, @day INT, @month INT, @year INT
AS
BEGIN
DECLARE @sql_text VARCHAR(8000)
SET @sql_Text = 'UPDATE tblattendance SET DAY'+CONVERT(VARCHAR(2),@day)+'=''P'' WHERE empid = '+CONVERT(VARCHAR(4), @empid)+' AND month = '+CONVERT(VARCHAR(4), @month)+' AND Year ='+CONVERT(VARCHAR(4), @year)
EXEC(@sql_text)
END
但是,我不希望它在動態SQL。我想重新寫入標準的T-sQL代碼。
我試了它沒有工作。
CREATE PROC PROC_Attendance_update @empid INT, @day INT, @month INT, @year INT
AS
BEGIN
UPDATE tblattendance SET CASE WHEN @day=1 THEN DAY1 = 'P'
WHEN @day=2 THEN DAY2 = 'P'
.
.
WHEN @day=31 THEN DAY31 = 'P'
END
WHERE empid = @empid AND MONTH = @month AND Year = @Year
END
可以在這個任何人的幫助?
「誰能幫忙嗎?」 - 我可以將它改爲更合理的設計,每天只有一排*行,但我認爲這不是您要求的那種幫助。 – 2013-03-22 07:35:45