Dan*_*iel 373 sql t-sql sql-server stored-procedures
我试图从一个表中选择一些字段并将它们从存储过程插入到现有表中.这是我正在尝试的:
SELECT col1, col2
INTO dbo.TableTwo
FROM dbo.TableOne
WHERE col3 LIKE @search_key
Run Code Online (Sandbox Code Playgroud)
我认为select into是临时表,这就是为什么我得到一个SELECT ... INTO ...已经存在的错误.
我怎样才能插入多行dbo.TableTwo成dbo.TableOne?
OMG*_*ies 619
SELECT ... INTO ... 只有在INTO子句中指定的表不存在时才有效 - 否则,您必须使用:
INSERT INTO dbo.TABLETWO
SELECT col1, col2
FROM dbo.TABLEONE
WHERE col3 LIKE @search_key
Run Code Online (Sandbox Code Playgroud)
假设dbo.TABLETWO中只有两列 - 否则需要指定列:
INSERT INTO dbo.TABLETWO
(col1, col2)
SELECT col1, col2
FROM dbo.TABLEONE
WHERE col3 LIKE @search_key
Run Code Online (Sandbox Code Playgroud)
Som*_*luk 12
有两种不同的方法可以实现从一个表到另一个表插入数据.
当先前已在数据库中创建表并将数据从另一个表插入此表时,将使用此方法.如果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
Run Code Online (Sandbox Code Playgroud)
当先前未创建表时,需要使用此方法,并且需要在将来自一个表的数据从另一个表插入到新创建的表中时创建该方法.使用与所选列相同的数据类型创建新表.
----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
Run Code Online (Sandbox Code Playgroud)
小智 5
它将按如下方式工作:
insert into Gengl_Del Select Tdate,DocNo,Book,GlCode,OpGlcode,Amt,Narration
from Gengl where BOOK='" & lblBook.Caption & "' AND DocNO=" & txtVno.Text & ""
Run Code Online (Sandbox Code Playgroud)