sqlserver之将一个服务器上的表复制到另外一个服务器上

it2022-05-05  120

欢迎加入BIM行业开发交流1群 群号:711844216

一、背景

小伙伴们在使用sqlserver时,可能需要将一个服务器上某个数据库中的表复制到另外一个服务器上的某个数据库中。

关于如何复制表到当前数据库,可以参看博主这篇文章 sqlserver之复制表到当前数据库

关于如何复制表到另一个数据库,可以参看博主这篇文章 sqlserver之复制表到另一个数据库

二、思路

通过将原服务器上表的结构(或者包括数据)sql语句提取出来,然后稍加修改,在新的服务器中执行sql语句,从而完成复制。 下面,就给大家详细解释一下这一系列操作。

第一步,原服务器上的数据库为A,表为a 里面只有一列,值为123 第二步,在A数据库上,右键,任务,生成脚本 第三步,下一步 第四步,选择我们需要复制的表a,下一步 第五步, 如果我们只复制结构(就是没有数据),那么直接默认下一步就行,创建sql语句。 如果我们需要复制结构和数据,那么点击这里的高级 将这里的仅限架构改为架构和数据,然后确定

再继续默认下一步,就完成sql语句的创建了。 第六步,打开我们需要将表导入的另外一个服务器,假设我们要将表放在这个服务器的B数据库里面,并且取表名为b。 第七步,修改刚才创建的sql语句,如下:

USE [A] GO /****** Object: Table [dbo].[a] Script Date: 2019/7/18 19:30:32 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[a]( [ceshi] [nchar](10) NULL ) ON [PRIMARY] GO INSERT [dbo].[a] ([ceshi]) VALUES (N'123')

针对以上语句

首先将数据库名A改为B再将表名a改为b

如下

USE [B] GO /****** Object: Table [dbo].[b] Script Date: 2019/7/18 19:30:32 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[b]( [ceshi] [nchar](10) NULL ) ON [PRIMARY] GO INSERT [dbo].[b] ([ceshi]) VALUES (N'123')

通常而言,数据库名只改一次,表名需要改多处,小伙伴们这里细心一点。

第八步,在新的数据库中,运行我们修改好的数据库就行了 新的服务器上,B数据库中b表就得到了

三、注意事项

1.如果只需要复制表结构,那么默认创建sql就行,如果还需要复制数据,那么修改高级里面的设置就行了。 2.大家好,我是黑夜の骑士,欢迎大家关注我的博客,笔者将持续输出revit二次开发以及编程干货


最新回复(0)