我在YouTube上找到了很多例子,在谷歌的搜索方面,我仍然可以找到一块墙。我有两个数据库(我相信)相同的表格,结构等。
db1.dbo.table比db2.dbo.table提供的信息要多得多。我想将db1.dbo.table中的一些信息复制到已经创建的db2.dbo.table(它有一些我希望保留的现有值)。
以下是一个例子:
SELECT * FROM table WHERE TYPE = '1'
如果我针对db1.dbo.table运行它,则返回12行的值。当针对db2.dbo.table运行时,它会导致2行。我想保留这两行,但是再添加db1.dbo.table中的其他12行。
如果我使用:
select * into db2.dbo.table from db1.dbo.table
我收到表已经存在的错误。
如果我尝试以下方法:
Use db1
go
insert into table
select *
from table
where type (this is one of my column names) = '1' (one of the appropriate values)
我收到"表格'表格中的标识列的显式值只能在使用列列表且IDENTITY_INSERT为ON时指定。"在研究中,我尝试了以下内容:
Set Identity_Insert table (the name of my table) ON
Go
Insert into db2.dbo.table(column 1,column2,etc.,)
select (here, I've tried * as well as the same column1,column2,etc., values as above)
From db1.dbo.table
我还没有找到正确的组合。我说我仍然是SQL的新手,但我理解技术,我理解在我读取/尝试编辑和执行环境的示例中发生的事情,我只是不确定如何正确排除故障。我将重申我想要完成的事情。
我想复制从以下位置返回的值:
SELECT * FROM TABLE WHERE TYPE = '1' in db1 (returns 12 rows)
into db2 (where the same returns 2 rows, I want this to return the same 2, plus the 12 from the other db when I'm done).
答案 0 :(得分:2)
尝试INSERT INTO:
而不是SELECT INTOINSERT INTO
db2.dbo.table
(
col1,
col2,
col3,
etc.
)
SELECT
col1,
col2,
col3,
etc.
FROM
db1.dbo.table
WHERE
TYPE = '1'