我有一个表格,其中包含表单详细信息,表单num(标识列)和Question Score的5列。
我对表单的插入过程非常基础:
ALTER PROC [dbo].[Insert_New_Form]
@questionOne int, @questionTwo int, @questionThree int,
@questionFour int, @questionFive Int as
begin
Insert into Questionire_Form values (
@questionOne, @questionTwo, @questionThree,
@questionFour, @questionFive)
end
我持有一个int调用答案,它在单选按钮选择(评分)之间的值会发生变化。
我的问题是,我如何编写一个程序来将所有答案插入一行,这意味着每次点击" next"按钮将特定答案的分数插入特定列的行。
如果我再次使用chack按钮来浏览表单,我该如何更新程序呢?
我正在使用MS SQL 2012
答案 0 :(得分:0)
我希望以下代码可以帮助您
CREATE PROCEDURE add_Score
@userID INT
@questionNumber INT,
@score INT
AS
DECLARE @ColumnaName VARCHAR(100)
DECLARE @sql VARCHAR(1000)
SET @ColumnName =
( CASE @questionNumber
WHEN 1 THEN 'ColumnOne'
WHEN 2 THEN 'ColumnTwo'
WHEN 3 THEN 'ColumnThree'
WHEN 4 THEN 'ColumnFour'
END )
IF EXISTS(SELECT * FROM Questionire_Form WHERE UserID = @userID) THEN
BEGIN
SET @sql = 'UPDATE Questionire_Form SET ' + @ColumnName + ' = ' + @score + ' WHERE UserID = ' + @userID
END
ELSE
BEGIN
SET @sql = 'INSERT INTO Questionire_Form (UserID, ' + @ColumnName + ') VALUES(' + @userID + ', ' + @score + ')'
END
EXEC(@sql)