如何合併insert+insert成一筆(asp+sql)

新增[修改前]的資料至t_wf_scrap_metal_ck(稽核),並記錄下修改人及日期

O7Conn.execute("insert into pldmes.t_wf_scrap_metal_ck(seqnum,tech,layer,Au,Density,Pt,Pd,Ag) SELECT * FROM pldmes.t_wf_scrap_metal where tech='"& trim(B(i))&"'and layer='"& trim(C(i))&"'")

O7Conn.execute("insert into pldmes.t_wf_scrap_metal_ck(mduser,mddate) values('"+Session("UserName")+"','"+( udate )+"')")

Update:

我補充上我的欄位了(我是用ASP+SQL語法哦!)

table:

(1)t_wf_scrap_metal(主要table)

(seqnum,tech,layer,Au,Density,Pt,Pd,Ag)

(2)t_wf_scrap_metal_ck(稽核用的table)

(seqnum,tech,layer,Au,Density,Pt,Pd,Ag,mduser,mddate)

目的:

儲存資料時要把修改前的資料複製一份至t_wf_scrap_metal_ck,並記錄下修改人及日期

Update 2:

KL and 周 你們的方法我試過了,都不行a~

我PO了上面的資訊了,這樣你們比較了解table的結構

再麻煩你們囉~3Q)))

5 Answers

Rating
  • 提姆
    Lv 5
    1 decade ago
    Favorite Answer

    O7Conn.execute("insert into pldmes.t_wf_scrap_metal_ck(seqnum, tech, layer, Au, Density, Pt, Pd, Ag, mduser, mddate) SELECT pldmes.t_wf_scrap_metal.*, '"+Session("UserName")+"','"+( udate )+"' FROM pldmes.t_wf_scrap_metal where tech='"& trim(B(i))&"' and layer='"& trim(C(i))&"'")

  • 1 decade ago

    對丫~

    他最接近我的需求

    但我改成了"+( udate )+"'" 還是沒辦法成功

    錯誤訊息為pldmes.t_wf_scrap_metal無法select找出該欄位insert into

    我試好幾天了

    請大家幫幫忙囉!

  • Terry
    Lv 5
    1 decade ago

    周的回答看起來像是你要的

    只是多了一個括弧

    '"+( udate )+"')"

    ==>

    '"+( udate )+"'"

  • 1 decade ago

    其實你只要做一次insert 就可以了

    把妳要加入的 修改人,日期組在第一次要insert 的select 中就好啦O7Conn.execute("insert into pldmes.t_wf_scrap_metal_ck(seqnum,tech,layer,Au,Density,Pt,Pd,Ag,mduser,mddate) SELECT *,'"+Session("UserName")+"','"+( udate )+"')" FROM pldmes.t_wf_scrap_metal where tech='"& trim(B(i))&"'and layer='"& trim(C(i))&"'")

    Source(s): 自己
  • How do you think about the answers? You can sign in to vote the answer.
  • 1 decade ago

    INSERT pldmes.t_wf_scrap_metal_ck

    SELECT pldmes.t_wf_scrap_metal.*,'@UserName' AS mduser ,'@udate' AS mddate

    FROM pldmes.t_wf_scrap_metal

    WHERE tech='@BI' and layer='@CI'

    基本上你的語法寫得很怪

    上下要INSERT入同一個table 欄位數目竟然不相同

    所以我也不太清楚你要作啥 於是語法就先這樣寫

    再加上不知道表格pldmes.t_wf_scrap_metal

    它裡頭的欄位順序為何,我就假設mduser,mddate這二個欄位在該表格的最後二個欄位

    上列語法中'@....'中的指的是你要丟進去的參數(如'"& trim(B(i))&"')

    你自己再串語法吧

    而個人建議如果您使用的是MSSQL資料庫

    最好是將SQL寫成預存程序在資料庫裡

    丟參數給指定的預存程序執行既有效率也比較好維護

    否則串字串多一個引號少一個引號改得會很辛苦的

    Source(s): 自己
Still have questions? Get your answers by asking now.