问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用sql,复制一个数据库?

发布网友 发布时间:2022-04-24 03:59

我来回答

4个回答

热心网友 时间:2022-04-08 19:38

SQL六种数据移动方法
1. 通过工具DTS的设计器进行导入或导出
DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然,也可以进行全部表的移动。在SQL Server Enterprise Manager中,展开服务器左边的+,选择数据库,右击,选择All tasks/Import Data...(或All tasks/Export Data...),进入向导模式,按提示一步一步走就行了,里面分得很细,可以灵活的在不同数据源之间复制数据,很方便的。而且可以另存成DTS包,如果以后还有相同的复制任务,直接运行DTS包就行,省时省力。也可以直接打开DTS设计器,方法是展开服务器名称下面的Data Transformation Services,选Local Packages,在右边的窗口中右击,选New Package,就打开了DTS设计器。值得注意的是:如果源数据库要拷贝的表有外键,注意移动的顺序,有时要分批移动,否则外键主键,索引可能丢失,移动的时候选项旁边的提示说的很明白,或者一次性的复制到目标数据库中,再重新建立外键,主键,索引。
其实建立数据库时,建立外键,主键,索引的文件应该和建表文件分开,而且用的数据文件也分开,并分别放在不同的驱动器上,有利于数据库的优化。
2. 利用Bcp工具
这种工具虽然在SQL Server7的版本中不推荐使用,但许多数据库管理员仍很喜欢用它,尤其是用过SQL Server早期版本的人。Bcp有局限性,首先它的界面不是图形化的,其次它只是在SQL Server的表(视图)与文本文件之间进行复制,但它的优点是性能好,开销小,占用内存少,速度快。有兴趣的朋友可以查参考手册。
3. 利用备份和恢复
先对源数据库进行完全备份,备份到一个设备(device)上,然后把备份文件复制到目的服务器上(恢复的速度快),进行数据库的恢复操作,在恢复的数据库名中填上源数据库的名字(名字必须相同),选择强制型恢复(可以覆盖以前数据库的选项),在选择从设备中进行恢复,浏览时选中备份的文件就行了。这种方法可以完全恢复数据库,包括外键,主键,索引。
4. 直接拷贝数据文件
把数据库的数据文件(*.mdf)和日志文件(*.ldf)都拷贝到目的服务器,在SQL Server Query Analyzer中用语句进行恢复:
EXEC sp_attach_db @dbname = 'test ',
@filename1 = 'd:\mssql7\data\test_data.mdf ',
@filename2 = 'd:\mssql7\data\test_log.ldf '
这样就把test数据库附加到SQL Server中,可以照常使用。如果不想用原来的日志文件,可以用如下的命令:
EXEC sp_detach_db @dbname = 'test '
EXEC sp_attach_single_file_db @dbname = 'test ',
@physname = 'd:\mssql7\data\test_data.mdf '
这个语句的作用是仅仅加载数据文件,日志文件可以由SQL Server数据库自动添加,但是原来的日志文件中记录的数据就丢失了。
5. 在应用程序中定制
可以在应用程序(PB、VB)中执行自己编写的程序,也可以在Query Analyzer中执行,这种方法比较灵活,其实是利用一个平台连接到数据库,在平台中用的主要时SQL语句,这种方法对数据库的影响小,但是如果用到远程链接服务器,要求网络之间的传输性能好,一般有两种语句:
1> select ... into new_tablename where ...
2> insert (into) old_tablename select ... from ... where ...
区别是前者把数据插入一个新表(先建立表,再插入数据),后者是把数据插入已经存在的一个表中,我个人喜欢后者,因为在编程的结构上,应用的范围上,第二条语句强于前者。
6. SQL Server的复制功能
SQL Server提供了强大的数据复制功能,也是最不易掌握的,具体应用请参考相关资料,值得注意的是要想成功进行数据的复制工作,有些条件是必不可少的:
1> SQL Server Agent必须启动,MSDTC必须启动。
2> 所有要复制的表必须有主键。
3> 如果表中有text或image数据类型,必须使用with log选项,不能使用with no_log选项。
另外max text repl size选项控制可以复制的文本和图像数据的最大规模,超过这个*的操作将失败。
4> 在要进行复制的计算机上,应该至少是隐含共享,即共享名是C$或D$…。
5> 为SQL Server代理使用的Windows NT帐号不能是一个本地的系统帐号,因为本地的系统帐号不允许网络存取。
6> 如果参与复制的服务器在另外的计算机域中,必须在这些域之间建立信任关系。

热心网友 时间:2022-04-08 20:56

自认为不是高手
--------------------------------

--在master中创建student表
use master
go
create table student
(
id int IDENTITY (1,1),
name varchar(20),
age int
)

--插入2条测试数据
insert into student
select '周杰伦','100'
union
select '蔡依林','1000'

--查询数据
select * from student

--创建测试数据库
create database test

--复制插入到新的数据库test
--语句原型 select * into 数据库.dbo.新表名 from 要复制的表
--copyfromstudent这个表不需要创建由into自动创建
select * into test.dbo.copyfromstudent from master.dbo.student

--查询新表的数据
select * from test.dbo.copyfromstudent

--copyfromstudent和student的表结构数据都一样

热心网友 时间:2022-04-08 22:30

select * into 新表名 from 旧表名

热心网友 时间:2022-04-09 00:22

creat table 新表 as (select * from 旧表);
这样会新建一张表,并且把老表的所有数据导入新表。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 sql数据库里面的数据怎么拷贝到另一台电脑 SQL SERVER 数据库的表怎么复制? 如何复制表?SQL SQL server 数据库 如何把一张表复制到另一个数据库表中 请问如何在Excel将数据排名,谢谢 怎样对excel表格中的数据进行排名 17怎么安装显卡驱动 电脑显卡驱动怎么安装那一个是显卡驱动 在电脑上怎么安装显卡驱动, 铁棍山药不适宜的人群是什么? 你知道山药的三大禁忌是什么吗?山药的好处有哪些呢? 腾讯文档共享EXCEL,多人编辑,如何防止误删? 黄金中的9999是什么意思??好像还有99999 黄金9999是千足金吗? 戒指上有老凤祥,足金还有9999是什么意思 黄金中的9999是什么意思?99999就不是按可计算钱买的吗? 9999是什么黄金 请问金戒指里面刻着“9999”是什么意思? 华为nove8耳机插孔在哪 华为nova8pro的耳机孔在哪 如何用sql语句复制一张表 老人买哪款智能手表比较好? SQL server数据库文件如何复制 SQL如何复制表结构? 如何复制sql server数据库 sql 怎么复制一条数据到另外一张表 如何数据库复制 SQL sql2000数据库如何复制? 用sql语句,怎样把数据库中的一个表复制给另一个数据库。 哪个品牌的智能手表最好? 如何一句SQL复制同一个表同一个字段的内容 苏打饼干能多吃吗? 自制苏打饼干不脆的原因是什么 苏打饼干怎么做 怎样做香脆的苏打饼干 普通饼干与苏打饼干的区别? 宫匠居家布艺地毯送贵人合适吗? 在国内居家布艺市场宫匠手工地毯畅销吗? 怎么把旧衣服剪成编织地毯用的完整连续布条 想换新地毯,大家有好的推荐吗?