我正在尝试从一个表中选择一些字段,并将它们插入到一个存储过程中的现有表中。这是我正在尝试的:
SELECT col1, col2
INTO dbo.TableTwo
FROM dbo.TableOne
WHERE col3 LIKE @search_key
我认为SELECT ... INTO ...
是用于临时表的,这就是为什么我得到dbo.TableTwo
已经存在的错误的原因。
如何在dbo.TableTwo
中插入dbo.TableOne
中的多行
发布于 2010-11-05 05:52:48
仅当INTO子句中指定的表不存在时,SELECT ... 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
发布于 2017-09-15 14:03:14
有两种不同的方法可以实现将数据从一个表插入到另一个表。
For Existing Table - INSERT INSERT INSERT
当先前已经在数据库中创建了表,并且要将数据从另一个表插入到此表中时,使用此方法。如果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
对于不存在的表-选择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
发布于 2012-12-22 16:34:58
它的工作原理如下:
insert into Gengl_Del Select Tdate,DocNo,Book,GlCode,OpGlcode,Amt,Narration
from Gengl where BOOK='" & lblBook.Caption & "' AND DocNO=" & txtVno.Text & ""
https://stackoverflow.com/questions/4101739
复制相似问题