将数据从一个数据库中的表复制到另一个单独的数据库

Gab*_*abe 45 sql sql-server

基本上我在SQL Server 2005上有两个数据库.

我想从一个数据库中获取表数据并将其复制到另一个数据库的表中.

我试过这个:

SELECT * INTO dbo.DB1.TempTable FROM dbo.DB2.TempTable
Run Code Online (Sandbox Code Playgroud)

这没用.

我不想使用恢复来避免数据丢失......

有任何想法吗?

Tom*_*m H 65

SELECT ... INTO创建一个新表.你需要使用INSERT.此外,您还反转了数据库和所有者名称.

INSERT INTO DB1.dbo.TempTable
SELECT * FROM DB2.dbo.TempTable
Run Code Online (Sandbox Code Playgroud)


Mit*_*ers 15

SELECT*INTO要求目标表不存在.

试试这个.

INSERT INTO db1.dbo.TempTable
 (List of columns here)
SELECT (Same list of columns here)
FROM db2.dbo.TempTable
Run Code Online (Sandbox Code Playgroud)


Aar*_*ton 8

它是db1.dbo.TempTable和db2.dbo.TempTable

四部分命名方案如下:

ServerName.DatabaseName.Schema.Object


Pet*_*nge 5

很难说不知道你的意思是"它不起作用".有很多事情可能会出错,我们在排除其中一条路径时给出的任何建议可能会让您越来越远地找到解决方案,这可能非常简单.

这是我想要的东西,

如果该表包含标识字段并且您手动提供,则必须在要导入的表上启用标识插入.Identity Insert也只能在数据库中一次启用1个表,因此您必须记住为表启用它,然后在导入完成后立即禁用它.

另外,请尝试列出您的所有字段

INSERT INTO db1.user.MyTable (Col1, Col2, Col3)
SELECT Col1, COl2, Col3 FROM db2.user.MyTable
Run Code Online (Sandbox Code Playgroud)


Dee*_*ari 5

我们可以由三部分命名,例如database_name..object_name

下面的查询将在我们的数据库中创建表(没有约束)

SELECT * 
INTO DestinationDB..MyDestinationTable 
FROM SourceDB..MySourceTable 
Run Code Online (Sandbox Code Playgroud)

或者你可以:

INSERT INTO DestinationDB..MyDestinationTable 
SELECT * FROM SourceDB..MySourceTable
Run Code Online (Sandbox Code Playgroud)

如果您的目标表存在并且为空。