我不是专业程序员,而是需要帮助的爱好者。这是我的挑战:
我为员工提供了一个充满数据的表格。
目前,我们的任何员工都可以访问我们网站上的“更新”网页,并在显示的上一个上输入新姓氏在文本框中单击“提交”,他的姓氏将在数据库中更新。但是,我的主管希望将员工的以前的姓氏保留在与新姓氏相同的表格中。她的想法是,当员工在文本框中输入新姓氏时,它会触发数据库将其上一个姓氏存储在名为“Alias”的列中,然后在“LastName”列中更新其新姓氏。我该如何处理?
这是表格的结构:
PeopleID (int)
JobIDNum (int)
EmployeeIDNum (varchar(25))
Email (varchar(100))
Password (varchar(50))
LastName (varchar(50))
FirstName (varchar(25))
Deleted (char(1))
Alias (varchar(50))
我感谢我能得到的任何帮助和/或建议。
答案 0 :(得分:0)
UPDATE TABLENAME
SET Alias = LastName, LastName = @LastName
WHERE PeopleID = @PeopleID
如果@LastName
是具有新值的参数,@PeopleID
是相应人员的ID。
答案 1 :(得分:0)
建议您可以从ASP调用的存储过程。
CREATE PROC UpdateEmp
@EmpID int,
@LastName varchar(50),
--all the others properties you need to update this person
AS
BEGIN
UPDATE Employee
SET Alias = LastName,
LastName = @LastName,
--all the other properties you want updated.
WHERE PeopleID = @EmpID;
END
在ASP代码中调用此存储过程,如下所示:
Dim cmd
Dim ln
Dim retCount
Dim conn
Set conn= Server.CreateObject("ADODB.Connection")
Set cmd = Server.CreateObject("ADODB.Command")
conn.Open "some connection string"
With cmd
.ActiveConnection = conn
.Commandtext = "UpdateEmp"
.CommandType = adCmdStoredProc
.Parameters.Append .CreateParameter("@EmpID", adInteger, adParamInput, 10)
.Parameters("@EmpID") = 22 'some Employee you get from your code
.Parameters.Append .CreateParameter("@LastName", adVarChar, adParamInput, 50)
.Parameters("@LastName") = "MyLastName" 'some Employee you get from your code
.Execute ln, , adExecuteNoRecords
End With
Set cmd = Nothing
答案 2 :(得分:0)
尝试此更新声明:
UPDATE Employee
Set LastName = @NewLastName,
Alias = LastName
WHERE PeopleId = @Whatever