SQL Server SELECT dans la table existante

je suis en train de sélectionner certains champs d'une table et de les insérer dans une table existante à partir d'une procédure stockée. Voici ce que j'essaie:

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

je pense que select into est pour les tables temporaires, c'est pourquoi j'obtiens une erreur qui dbo.TableTwo existe déjà.

Comment puis-je insérer plusieurs lignes de dbo.TableOne dans dbo.TableTwo ?

328
demandé sur marc_s 2010-11-05 00:49:42

5 réponses

SELECT ... INTO ... fonctionne seulement si le tableau spécifié dans la clause dans N'existe pas - sinon, vous devez utiliser:

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

cela suppose qu'il n'y a que deux colonnes dans dbo.TABLETWO - vous devez spécifier les colonnes autrement:

INSERT INTO dbo.TABLETWO
  (col1, col2)
SELECT col1, col2
  FROM dbo.TABLEONE
 WHERE col3 LIKE @search_key
548
répondu OMG Ponies 2010-11-04 21:52:48

il y a deux façons différentes d'insérer des données d'une table à une autre.

pour la Table existante-insérer dans sélectionner

cette méthode est utilisée lorsque la table est déjà créée dans la base de données plus tôt et que les données doivent être insérées dans ce tableau à partir d'une autre table. Si les colonnes énumérées dans insert clause et select clause sont identiques, elles ne sont pas tenues de les énumérer. Il est recommandé de toujours les énumérer pour en assurer la lisibilité. et de l'évolutivité de but.

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

pour Table Non existante-sélectionner dans

Cette méthode est utilisée lorsque la table n'est pas créée précédemment et doit être créée lorsque les données d'un tableau est d'être insérées dans la table nouvellement créée à partir d'une autre table. La nouvelle table est créée avec les mêmes types de données que les colonnes sélectionnées.

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

8
répondu Somnath Muluk 2017-09-15 06:03:14

il fonctionnerait comme indiqué ci-dessous:

insert into Gengl_Del Select Tdate,DocNo,Book,GlCode,OpGlcode,Amt,Narration 
from Gengl where BOOK='" & lblBook.Caption & "' AND DocNO=" & txtVno.Text & ""
4
répondu Vinod Pareek 2012-12-22 08:34:57

l'instruction SELECT INTO copie les données d'une table dans une nouvelle table.

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

par exemple: SQL statement crée une copie de sauvegarde des clients

SELECT * INTO backup FROM Customers;
4
répondu pradip kor 2017-06-28 09:22:35
select *
into existing table database..existingtable
from database..othertables....

si vous avez déjà utilisé select * into tablename from other tablenames , la prochaine fois, vous devez ajouter select * into existing table tablename from other tablenames

"
3
répondu Verena_Techie 2014-01-23 12:47:06