我很難在同一個表中將數據從一行復制到另一行。基本上,我有一個案例,列[I/O#]
等於'Client1'
,但我想使[I/O#]
列等於'Client2'
沒有歸因於Client1擦除的數據,即我想保留與Client1
相關的數據,但只是將名稱替換爲Client2
。在同一個表中將數據從一行復制到另一行SQL
我試圖在我的PHP文件,但徒勞下面的SQL查詢:
$sql_UPDATE_query ="UPDATE [$connectionInfo[Database]].[dbo].[form_record]
SET
[Last_Edit] = newdata.[Last_Edit],
[User_Name] = newdata.[User_Name],
[Computer_Name] = newdata.[Computer_Name],
[form_name] = newdata.[form_name],
[Date] = newdata.[Date],
[facility] = newdata.[facility],
[Count] = newdata.[Count],
[Start_Time] = newdata.[Start_Time],
[Stop_Time] = newdata.[Stop_Time],
[MW/Hrs_Start] = newdata.[MW/Hrs_Start],
[MW/Hrs_Stop] = newdata.[MW/Hrs_Stop],
[M³] = newdata.[M³],
[MCF] = newdata.[MCF],
[Litres] = newdata.[Litres],
[Description] = newdata.[Description],
[Lock] = newdata.[Lock]
FROM
(
SELECT
[Last_Edit],
[User_Name],
[Computer_Name],
[form_name],
[Date],
[facility],
[Count],
[Start_Time],
[Stop_Time],
[MW/Hrs_Start],
[MW/Hrs_Stop],
[M³],
[MCF],
[Litres],
[Description],
[Lock]
FROM [$connectionInfo[Database]].[dbo].[form_record]
WHERE
[I/O#] = '$PrevIO'
) newdata
WHERE
[I/O#] = '$IO'";
通過$PrevIO
和$IO
在我的PHP文件中已經定義的方式(只是沒有顯示它),所以這不是在錯誤所在。
現在,我們假設$PrevIO='Client1'
和$IO='Client2
。我如何將屬於Client1的表[form_record]
中的所有數據(行)歸入並複製到Client2,然後最終刪除Client1或甚至更好,只需簡單地替換名稱,但你們知道的更好。我認爲newdata
可以用作同一表form_record
的別名表,但它似乎不起作用。
我正在使用Microsoft SQL 2005 Server。
它說以下錯誤信息:錯誤:附近有語法錯誤 '*'。 查詢... – Andrew
是的,你需要用你的條件替換'*** newdata.field = UPD.field ***'。 –