SQL Server SELECT в существующую таблицу

Я пытаюсь выбрать некоторые поля из одной таблицы и вставить их в существующую таблицу из хранимой процедуры. Вот что я пытаюсь:

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

Я думаю, что select in is для временных таблиц, поэтому я получаю сообщение об ошибке, что dbo.TableTwo уже существует.

Как вставить несколько строк из dbo.TableOne в dbo.TableTwo?

Ответ 1

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

Ответ 2

Это будет работать следующим образом:

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

Ответ 3

select *
into existing table database..existingtable
from database..othertables....

Если вы уже использовали select * into tablename from other tablenames, в следующий раз, чтобы добавить, вы скажете select * into existing table tablename from other tablenames

Ответ 4

Оператор SELECT INTO копирует данные из одной таблицы в новую таблицу.

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

например: Оператор SQL создает резервную копию Клиентов

SELECT * INTO backup FROM Customers;

Ответ 5

Существует два разных способа реализации вставки данных из одной таблицы в другую таблицу.

Для существующей таблицы - INSERT IN 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

Ref 1 2