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