【问题标题】:How to insert values into one table from another table如何将值从另一个表插入到一个表中
【发布时间】:2015-07-30 09:59:54
【问题描述】:

我有两个表,即table1table2,结构相同,我想将 table1 的所有值插入 table2。这些表包含两个图像类型列。我试过这个查询,但没有成功。

DECLARE @imagepan VARBINARY(MAX)
DECLARE @imagecheque VARBINARY(MAX)

SET @imagepan=(SELECT panid FROM table1 WHERE Emp_code='E001')
SET @imagecheque=(SELECT cancel_checqe FROM table1 WHERE Emp_code='E001')
INSERT INTO table2 
    (transno, Emp_code, PanNo, panid, panext, entdt_pan, banknm, 
    cancel_checqe, chqExt, entDt_bnk, Acc_No, IFSC, Cheque_nm, status_pan1, 
    status_pan, status_bnk1, status_bnk, userid, entdt, panModify_by, 
    panModify_on, bnkModify_by, bnkModify_on) 
VALUES
    (SELECT 
        transno, Emp_code, PanNo, @imagepan, panext, entdt_pan, 
        banknm, @imagecheque, chqExt, entDt_bnk, Acc_No, IFSC, Cheque_nm, 
        status_pan1, status_pan, status_bnk1, status_bnk, userid, entdt, 
        panModify_by, panModify_on, bnkModify_by, bnkModify_on 
    FROM 
        table1 
    WHERE 
        Emp_code='E001')

我怎样才能做到这一点?

【问题讨论】:

  • INSERT INTO table1 (CustomerName, Country) SELECT SupplierName, Country FROM table2 从您的代码中删除 values (

标签: sql sql-server


【解决方案1】:

删除“值”关键字

insert into table2 (transno, Emp_code, PanNo, panid, panext, entdt_pan, 
                    banknm, cancel_checqe, chqExt, entDt_bnk, Acc_No, 
                    IFSC, Cheque_nm, status_pan1, status_pan, 
                    status_bnk1, status_bnk, userid, entdt, panModify_by, 
                    panModify_on, bnkModify_by, bnkModify_on) 
    select 
        transno, Emp_code, PanNo, @imagepan, panext, entdt_pan, 
        banknm, @imagecheque, chqExt, entDt_bnk, Acc_No, 
        IFSC, Cheque_nm, status_pan1, status_pan, 
        status_bnk1, status_bnk, userid, entdt, panModify_by, 
        panModify_on, bnkModify_by, bnkModify_on 
    from 
        table1 
    where 
        Emp_code = 'E001';

【讨论】:

    【解决方案2】:

    只需删除values ( 并在最后关闭)

    DECLARE @imagepan VARBINARY(MAX);
    DECLARE @imagecheque VARBINARY(MAX);
    
    SET @imagepan = (SELECT panid FROM table1 WHERE Emp_code = 'E001');
    SET @imagecheque = (SELECT cancel_checqe FROM table1 WHERE Emp_code = 'E001');
    
    INSERT INTO table2 (transno, Emp_code, PanNo, panid, panext, entdt_pan, 
    banknm, cancel_checqe, chqExt, entDt_bnk, Acc_No, IFSC, Cheque_nm, 
    status_pan1, status_pan, status_bnk1, status_bnk, userid, entdt, 
    panModify_by, panModify_on, bnkModify_by, bnkModify_on) 
    SELECT transno, Emp_code, PanNo, @imagepan, panext, entdt_pan, 
    banknm, @imagecheque, chqExt, entDt_bnk, Acc_No, IFSC, Cheque_nm, 
    status_pan1, status_pan, status_bnk1, status_bnk, userid, entdt, 
    panModify_by, panModify_on, bnkModify_by, bnkModify_on 
    FROM table1 
    WHERE Emp_code='E001';
    

    【讨论】:

      猜你喜欢
      • 2014-07-29
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 2012-03-06
      • 2014-10-15
      • 2020-11-25
      相关资源
      最近更新 更多