如何从一个数据库中获取数据并插入到另一个数据库表中?我不能这样做。请帮助我将数据从一个传输到另一个。
10 回答
有几种方法可以做到这一点,以下是两种选择:
选项 1 - 右键单击要复制的数据库
选择“任务”>“生成脚本”
'选择特定的数据库对象'
检查“表”
标记“保存到新的查询窗口”
点击“高级”
将“脚本的数据类型”设置为“架构和数据”
下一个,下一个
您现在可以在新数据库上运行生成的查询。
选项 2
右键单击要复制的数据库
“任务”>“导出数据”
下一个,下一个
选择要将表复制到的数据库
标记“从一个或多个表或视图复制数据”
选择要复制的表
结束
将一个数据库表中的值插入到同一 SQL Server 上运行的另一个数据库表中的示例
insert into dbo.onedatabase.FolderStatus
(
[FolderStatusId],
[code],
[title],
[last_modified]
)
select [FolderStatusId], [code], [title], [last_modified]
from dbo.Twodatabase.f_file_stat
如果两个数据库都在同一台服务器上,并且您想传输整个表(复制它),那么使用简单的 select into 语句...
select * into anotherDatabase..copyOfTable from oneDatabase..tableName
然后,您可以编写 sysobjects 的光标顶部并以这种方式复制整个表集。
如果您想要更复杂的数据提取和转换,请使用 SSIS 并在其中构建适当的 ETL。
对于 Azure 上的用户,请按照 Virus 中的这些修改后的说明进行操作:
- 打开 SSMS。
- 右键单击要从中复制数据的数据库。
- 选择Generate Scripts >> Select Specific Database Objects >> 选择您希望传输的表/对象。 强文本
- 在“保存到文件”窗格中,单击高级
- 将“脚本的数据类型”设置为架构和数据
- 将“Script DROP and CREATE”设置为Script DROP and CREATE
- 在“表格/视图选项”下,将相关项目设置为 TRUE。尽管我建议将 all 设置为 TRUE 以防万一。您始终可以在脚本生成后对其进行修改。
- 设置文件路径>>下一步>>下一步
- 打开新创建的 SQL 文件。从文件顶部删除“使用”。
- 在目标数据库上打开新的查询窗口,粘贴脚本内容(不使用)并执行。
您可以使用visual studio 2015。转到工具=> SQL server =>新数据比较
选择源和目标数据库。
- 您可以使用 Management Studio 备份和恢复数据库。
- 再次从 Management Studio 中,您可以使用“复制数据库”。
- 如果有理由这样做,您甚至可以手动进行。我的意思是手动创建目标数据库并通过sql语句手动复制数据......
你能澄清你为什么问这个吗?是你没有做这件事的经验还是别的什么?
有多种选择,取决于您的需求。请参阅以下链接:
这些解决方案适用于目标数据库为空的情况。如果两个数据库都已经有一些数据,你需要一些更复杂的东西http://byalexblog.net/merge-sql-databases
这可以通过 T-SQL 语句来实现,如果您知道该FROM
子句可以为表名指定数据库。
insert into database1..MyTable
select from database2..MyTable
以下是 Microsoft 解释语法的方式: https ://docs.microsoft.com/en-us/sql/t-sql/queries/from-transact-sql?view=sql-server-ver15
如果表或视图存在于同一 SQL Server 实例上的另一个数据库中,请使用格式为 的完全限定名称
database.schema.object_name
。
schema_name
可以省略,如上,表示当前用户的默认模式。默认情况下,它是dbo
.
如果需要,可以向列/行添加任何过滤。请务必在移动数据之前创建任何新表。
在两个不同的数据库之间以编程方式执行此操作可能涉及使用链接服务器的计划作业。但是链接服务器需要 DBA 级别的知识才能设置。如果您不能使用链接服务器,只需编写一个程序: 1. 从源表中读取一行,然后 2. 将其插入目标表中。程序员只需要使用具有 INSERT 权限的连接字符串到目标数据库表中。我已经使用这两种方法解决了这个问题。