SQL Server SELECT na tabela existente

Eu estou tentando selecionar alguns campos de uma tabela e inseri-los em uma tabela existente de um procedimento armazenado. Aqui está o que estou tentando:

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

Eu acho que select into é para tabelas temporárias, e é por isso que recebo um erro que dbo.TableTwo já existe.

Como posso inserir várias linhas de dbo.TableOne em dbo.TableTwo ?

SELECT ... INTO ... só funciona se a tabela especificada na cláusula INTO não existir – caso contrário, você terá que usar:

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

Isso pressupõe que há apenas duas colunas em dbo.TABLETWO – você precisa especificar as colunas caso contrário:

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

Existem duas maneiras diferentes de implementar a inserção de dados de uma tabela para outra.

Para a tabela existente – INSERT INTO SELECT

Esse método é usado quando a tabela já é criada no database anteriormente e os dados devem ser inseridos nessa tabela a partir de outra tabela. Se as colunas listadas na cláusula insert e na cláusula select forem as mesmas, elas não serão obrigadas a listá-las. É uma boa prática listá-los sempre para fins de legibilidade e escalabilidade.

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

Para tabela não existente – SELECT INTO

Esse método é usado quando a tabela não é criada anteriormente e precisa ser criada quando os dados de uma tabela são inseridos na tabela recém-criada de outra tabela. A nova tabela é criada com os mesmos tipos de dados que as colunas selecionadas.

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

Ref 1 2

Funcionaria como dado abaixo:

 insert into Gengl_Del Select Tdate,DocNo,Book,GlCode,OpGlcode,Amt,Narration from Gengl where BOOK='" & lblBook.Caption & "' AND DocNO=" & txtVno.Text & "" 

A instrução SELECT INTO copia os dados de uma tabela para uma nova tabela.

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

Por exemplo: a instrução SQL cria uma cópia de backup dos clientes

 SELECT * INTO backup FROM Customers; 
 select * into existing table database..existingtable from database..othertables.... 

Se você já usou select * into tablename from other tablenames , da próxima vez, para acrescentar, você diz select * into existing table tablename from other tablenames