Хранить старые данные в одном столбце и обновлять новые данные в другом столбце в той же таблице - PullRequest
0 голосов
/ 07 сентября 2011

Я не профессиональный программист, но энтузиаст, которому нужна помощь.Вот моя задача:

У меня есть таблица данных для наших сотрудников.

В настоящее время любой из наших сотрудников может перейти на веб-страницу «Обновление» на нашем веб-сайте и ввестиего новая фамилия над предыдущей фамилией, которая отображается в текстовом поле, и нажмите кнопку Отправить, его фамилия будет обновлена ​​в базе данных.Однако мой руководитель хочет сохранить предыдущую фамилию сотрудников в той же таблице, что и новая фамилия.Ее идея заключается в том, что, когда сотрудник вводит свою новую фамилию в текстовое поле, он заставит базу данных сохранить свою предыдущую фамилию в столбце с именем «Псевдоним», а затем обновит свою новая фамилия в столбце «Фамилия».Как мне поступить с этим?

Вот структура таблицы:

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))  

Я ценю любую помощь и / или совет, который я могу получить.

Ответы [ 3 ]

0 голосов
/ 07 сентября 2011

Предложите хранимую процедуру, которую вы можете вызвать из 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
0 голосов
/ 07 сентября 2011

Попробуйте это обновление:

UPDATE Employee
Set LastName = @NewLastName,
    Alias = LastName
WHERE PeopleId = @Whatever
0 голосов
/ 07 сентября 2011
UPDATE TABLENAME
  SET Alias = LastName, LastName = @LastName 
WHERE PeopleID = @PeopleID

Где @LastName - это параметр со значением new , @PeopleID - идентификатор соответствующих людей.

...