首页 文章

SQL Server SELECT进入现有表

提问于
浏览
334

我试图从一个表中选择一些字段并将它们从存储过程插入到现有表中 . 这是我正在尝试的:

SELECT col1, col2
INTO dbo.TableTwo 
FROM dbo.TableOne 
WHERE col3 LIKE @search_key

我认为select into是临时表,这就是我得到 dbo.TableTwo 已存在的错误的原因 .

如何将 dbo.TableOne 中的多行插入 dbo.TableTwo

5 回答

  • 10

    SELECT ... INTO ... 仅在INTO子句中指定的表不存在时才有效 - 否则,您必须使用:

    INSERT INTO dbo.TABLETWO
    SELECT col1, col2
      FROM dbo.TABLEONE
     WHERE col3 LIKE @search_key
    

    这假设dbo.TABLETWO中只有两列 - 否则需要指定列:

    INSERT INTO dbo.TABLETWO
      (col1, col2)
    SELECT col1, col2
      FROM dbo.TABLEONE
     WHERE col3 LIKE @search_key
    
  • 558

    有两种不同的方法可以实现从一个表到另一个表插入数据 .

    对于现有表 - INSERT INTO SELECT

    当先前已在数据库中创建表并将数据从另一个表插入此表时,将使用此方法 . 如果insert子句和select子句中列出的列相同,则不需要列出它们 . 为了可读性和可伸缩性的目的,始终列出它们是一种好习惯 .

    ----Create testable
    CREATE TABLE TestTable (FirstName VARCHAR(100), LastName VARCHAR(100))
    ----INSERT INTO TestTable using SELECT
    INSERT INTO TestTable (FirstName, LastName)
    SELECT FirstName, LastName
    FROM Person.Contact
    WHERE EmailPromotion = 2
    ----Verify that Data in TestTable
    SELECT FirstName, LastName
    FROM TestTable
    ----Clean Up Database
    DROP TABLE TestTable
    

    对于非现有表 - SELECT INTO

    当先前未创建表时,需要使用此方法,并且需要在将来自一个表的数据从另一个表插入到新创建的表中时创建该方法 . 使用与所选列相同的数据类型创建新表 .

    ----Create a new table and insert into table using SELECT INSERT
    SELECT FirstName, LastName
    INTO TestTable
    FROM Person.Contact
    WHERE EmailPromotion = 2
    ----Verify that Data in TestTable
    SELECT FirstName, LastName
    FROM TestTable
    ----Clean Up Database
    DROP TABLE TestTable
    

    参考1 2

  • 4

    SELECT INTO语句将数据从一个表复制到一个新表中 .

    SELECT * INTO newtable [IN externaldb] FROM oldtable WHERE condition;
    

    例如:SQL语句创建Customers的备份副本

    SELECT * INTO backup FROM Customers;
    
  • 3

    它的工作原理如下:

    insert into Gengl_Del Select Tdate,DocNo,Book,GlCode,OpGlcode,Amt,Narration 
    from Gengl where BOOK='" & lblBook.Caption & "' AND DocNO=" & txtVno.Text & ""
    
  • 4
    select *
    into existing table database..existingtable
    from database..othertables....
    

    如果您已经使用了 select * into tablename from other tablenames ,下次要追加,请说 select * into existing table tablename from other tablenames

相关问题