SqlServer将数据库中的表复制到另一个数据库

上周试过这个操作。

步骤是这么走的。

一、复制表结构。

先连上SqlServer。

在Source_db数据库,右键表。

选“编写表脚本为”→“CREATE到”→“新查询编辑器窗口”。

全选,复制脚本。

新建窗口,粘贴脚本。

改一下数据库名,从Source_db改成target_db。

执行脚本。

表结构就过去了。

二、复制表的数据内容。

在target_db数据库,点“任务”→“导入数据”。

启动导入导出向导。

选数据源,是Source_db。

选目标,是target_db。

选“复制表”。

选源表和目标表。

点“编辑映射”。

勾选“启用标识插入”。

一路下一步。

搞完了。

就是这样。

你看着办。

sqlserver如何导入一个数据库

说实话,我在论坛混了这么久,发现这四种方法各有各的坑,用的时候得特别小心。
就拿生成脚本来说吧,我上次给客户迁移数据库,直接用这个方法,结果导出脚本跑进目标库直接崩了——全靠我把每个表名前面加了个前缀才搞定。
所以啊,执行前一定得用小数据量先跑跑试试。

有意思的是导入导出向导,它确实挺直观,特别是跨数据库迁移的时候。
我有个朋友从MySQL转到SQLServer,就是靠这个工具搞定的,虽然最后发现有个存储过程因为参数类型不兼容得改了,但总比手动写脚本强多了。
不过要注意的是,它默认会把外键约束干掉,这个得单独勾选保留。

说到SelectInto,这招其实挺省事,前提是你得能确保目标表是空的。
我当年在测试环境迁移数据,就是用这个的,结果发现源库有个视图带触发器,复制过去后目标库就乱套了——当时真是哭笑不得。
所以记住,这方法只适合数据量不大、结构简单的场景。

最后说说用Excel转,这招特别适合新手或者临时处理小数据量。
我有个同事就靠这个把旧系统的数据整理到新数据库,虽然最后导入时发现CSV文件里的NULL值被当成了空字符串,硬是花了半天时间才改回来。
不过啊,这种预处理其实也挺实用的,特别是数据格式特别乱的场合。

最关键的是要注意性能问题,特别是用脚本导入大表的时候。
我上次有个项目,导一个几十G的表直接把服务器CPU干烧了,后来改用BULKINSERT才搞定。
所以说啊,数据量一大就得考虑用更专业的工具,别老想着走捷径。

sql server 中 一个要输入参数和输出参数的存储过程。

哎哟,咱们得先打开那个SQLServerManagment管理工具,就是那个数据库管理软件,对吧?然后咱们新建一个表,就像咱们平时建文件夹一样,点一下新建表,然后输入表名和数据字段。
记得当时我建了个“员工信息”表,里面有几个字段,比如“员工编号”、“姓名”啊,这些。

建好表之后,咱们得往里头插点数据,就像往文件夹里放文件一样。
我那时候插了几个员工的信息,你看,就像这样(这里应该有个图,但是文字描述一下就是:一个包含员工编号、姓名等信息的表格,有几行数据)。

然后咱们回到SQLServerManagment,右键点击那个“可编程性”,选“新建存储过程”。
这存储过程就像是个小助手,能帮咱们自动执行一些操作。

在写SQL语句的那个界面,咱们得写一些代码,告诉这个小助手怎么干活。
当时我写的代码是这样的(这里应该有个图,但是文字描述一下就是:一段SQL语句,包括一些SQL语法和变量定义)。

写完之后,咱们点一下执行,这时候就能在“可编程性”下面看到我们创建的存储过程了。

最后一步,咱们得调用一下这个存储过程。
就像咱们叫小助手帮忙做事一样,咱们在SQL语句前面加上“exec”,然后写上存储过程的名称,再跟上参数。
我当时调用的时候,传了一个员工编号进去,就像这样(这里应该有个图,但是文字描述一下就是:一个包含exec和存储过程名称的SQL语句,后面跟着参数)。
这样,小助手就会按照我们写的代码去执行任务了。