怎样在sql server不同的数据库之间复制表结构和数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在sql server不同的数据库之间复制表结构和数据相关的知识,希望对你有一定的参考价值。

方式一、如果写代码
select
*
into
[目标数据库b].dbo.表名
from.
[源数据库a].dbo.表名
方式二、如果不写代码,可以用导入的方式
复制表结构(如果目标数据库已经存在,此步跳过)
1、打开并连接sql
server,在源数据库data_a(源数据库名称)上右键,然后依次点击“编写表脚本为”→“create到”→“新查询编辑器窗口”。
2、在第1步产生的编辑器中按”crtl+a“组合键全选内容,然后右键“复制“(或按"crtl+c"键)。
3、新建查询,然后右键“粘贴”(或ctrl+v);如图所示,将代码中data_a(源数据库名)改为data_b(目标数据库名)。接着右键单击”执行“执行代码。
4、在目标数据库的表结构中就可以看到被复制过来的表了。
表的数据内容复制
选中目标数据库data_b然后点击”任务“→”导入数据“。
进入”sql
server导入导出向导“,根据提示步骤操作。
选择数据源(源数据库)。
选择目标(目标数据库)、指定表复制或查询。
选择源表和源视图:设置源表和目标表后,单击“编辑映射”按钮,在弹出窗口中选中“启用标识插入”。(否则后面会出错)
一直点击“下一步”至最后完成操作。
参考技术A 直接导过去就行啊
选择DB1
到表的列表那里
选择A表
右键
所有任务
数据导出
下一步
选择你要导出的数据库
下一步
选择你要导入的数据库
下一步
选择你要导的表(前面画勾)
后面对应的是新数据库的表名(默认是相同表名,可修改)
下一步
完了

sql server 2012复制数据库在同一主机上的两个实例之间失败

我正在学习sql server 2012并在使用复制数据库时陷入困境,试图找出原因。

我使用管理员,Windows身份验证在同一主机上创建了两个实例。 (默认实例:iZp0w14yqtvxcmZ,第二个实例:iZp0w14yqtvxcmZ \ instance2,尝试将数据库从默认数据库复制到第二个实例)

它在最后一步失败了:执行sql server agent job。这是来自windows事件查看器的错误日志:

Message: Failed to connect to server iZp0w14yqtvxcmZ.
StackTrace:    at Microsoft.SqlServer.Management.Common.ConnectionManager.Connect()
   at Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask.OpenConnection(Server& server, ServerProperty serverProp)
InnerException-->Login failed for user 'NT Service\SQLAgent$INSTANCE2'.

然后我尝试在默认实例中添加登录名“NT Service \ SQLAgent $ INSTANCE2”。然后再次尝试并得到另一个错误:

Event Name: OnError
 Message: An error occurred while transferring data. See the inner exception for details.
StackTrace:    at Microsoft.SqlServer.Management.Smo.Transfer.TransferData()
   at Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask.TransferExtraObjectsViaSmoTransfer()
InnerException-->Windows NT user or group 'iZp0wd5ebkvswaZ\Administrator' not found. Check the name again.

但管理员确实存在于计算机管理 - >本地用户和组 - >组中,所以我现在不知道该怎么做。需要帮忙 !!!

非常感谢!

答案

经过两天的挣扎,我想通了。 sql server代理服务应该使用基于域的帐户来实现多服务器环境。该帐户也应该能够登录并执行该作业。

另一答案

两个实例必须具有相同的密码并打开,然后在这种情况下:

插入[EI7-PC \ SQLEXPRESS2]。[MYCOMPANY]。[dbo]。[inventory] ​​SELECT * FROM [EI7-PC \ SQLEXPRESS1]。[MYCOMPANY]。[dbo]。[inventory] ​​where itemno = '10 -0001 “

密码相同的原因未知,这是我的经验。使用两个不同的密码,您可能会收到有关“sa”无法登录的错误消息。

以上是关于怎样在sql server不同的数据库之间复制表结构和数据的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 Azure Sql 数据库和 Sql Server 2012(本地服务器)之间创建复制吗?

怎样把sql server2000数据库转化为sql server2000的数据库

SQL Server Agent有啥作用 怎样用它

在 SQL Server DB 之间自动/以编程方式复制表(结构和数据)

如何从 SQL Server中手动删除复制

sql server2008 跨服务器之间复制表数据