如何用SQL语句 直接 备份,还原SQL 2000数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用SQL语句 直接 备份,还原SQL 2000数据库相关的知识,希望对你有一定的参考价值。

备份数据库,例如:
BACKUP DATABASE Northwind
TO DISK = \'c:\\Northwind.bak\'

还原数据库,例如:
--返回由备份集内包含的数据库和日志文件列表组成的结果集
RESTORE FILELISTONLY
FROM DISK = \'c:\\Northwind.bak\'
--还原由BACKUP备份的数据库
RESTORE DATABASE Northwind
FROM DISK = \'c:\\Northwind.bak\'
--指定还原后的数据库物理文件名称及路径
RESTORE DATABASE TestDB
FROM DISK = \'c:\\Northwind.bak\'
WITH
MOVE \'Northwind\' TO \'c:\\test\\testdb.mdf\',
MOVE \'Northwind_log\' TO \'c:\\test\\testdb.ldf\'
MOVE \'logical_file_name\' TO \'operating_system_file_name\'
指定应将给定的 logical_file_name 移到 operating_system_file_name。
默认情况下,logical_file_name 将还原到其原始位置。如果使用 RESTORE
语句将数据库复制到相同或不同的服务器上,则可能需要使用 MOVE 选项重
新定位数据库文件以避免与现有文件冲突。可以在不同的 MOVE 语句中指定
数据库内的每个逻辑文件。
--强制还原,加上REPLACE参数,则在现有数据库基础上强制还原。
RESTORE DATABASE TestDB
FROM DISK = \'c:\\Northwind.bak\'
WITH REPLACE,
MOVE \'Northwind\' TO \'c:\\test\\testdb.mdf\',
MOVE \'Northwind_log\' TO \'c:\\test\\testdb.ldf\'
参考技术A 举个例子
连接数据库查询表的相关语句:
class.forname("com.microsoft.jdbc.sqlserver.sqlserverdriver");
connection
conn=drivermanager.getconnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=mytest","sa","123");
statement
stmt=conn.createstatement();
resultset
rs=stmt.executequery("select
*
from
userinfo");
while(rs.next())

如何用sql 语句查找一个表里的两个字段重复的记录

表名为gl_accass 现在需要查找出citem_id和me字段在这个表里的重复值并列出来,前提是ccode等于1403 iperiod等于2。比方说在gl_accass表中ccode字段为1403, iperiod字段为2 citem_id有两行为001 对应的me字段的两行也是重复值,就查询出来。。不大懂SQL,表达的也不是多清除,QQ314363217 如能解决另加100分。万分感谢了。

select citem_id, me from gl_accass
where ccode=1403 and iperiod = 2
group by citem_id, me
having count(*) > 1
这个是仅仅把ccode和me列出来,不知道你是否需要把这条记录也列出来
如果要把 i_id连同这行记录列出的,用下面这个SQL
select * from gl_accass ,
( select citem_id, me from gl_accass
where ccode=1403 and iperiod = 2
group by citem_id, me
having count(*) > 1) t2
where gl_accass.citem_id = t2.citem_id and gl_accass.me = t2.me

如果你的ccode字段和me字段是字符型的,请把 =1403 和 =2 写成 ='1403' 和 ='2'追问

上面的sql测试正确,下面的执行后iperiod这个字段把为1的也显示了。我需要的就是在第一个语句的基础上再显示出来对应的 i_id就可以了。麻烦你再给写个吧,分一定给你。多谢了

追答

哦,那就把还有两个条件也加上

select * from gl_accass ,
( select citem_id, me from gl_accass
where ccode=1403 and iperiod = 2
group by citem_id, me
having count(*) > 1) t2
where gl_accass.citem_id = t2.citem_id and gl_accass.me = t2.me
and ccode=1403 and iperiod = 2

参考技术A 若是只把相同记录查出来,sql语句如下(ccode、iperiod当成了int进行处理):
select citem_id,me
from gl_accass
where ccode=1403 and iperiod=2
order by citem_id,me
若是要查出相同记录数:
select citem_id,count(citem_id) numberofcitem_id,me,count(me) numberof(me)
from gl_accass
where ccode=1403 and iperiod=2
group by citem_id,me
order by citem_id,me
参考技术B 你的表述也不是太清楚,最好举个例子

select a.* from table_name a ,table_name b where a.column_name = b.column_name;追问

已经补充问题,望解答

以上是关于如何用SQL语句 直接 备份,还原SQL 2000数据库的主要内容,如果未能解决你的问题,请参考以下文章

SQLServer2000中 如何用sql脚本还原数据库

SQL server 如何用语句备份和还原数据

sql server 如何用sql语句实现单个表的备份和还原。

SQL 备份与还原 如何用脚本语言写?

用SQL语句备份数据库

如何用RESTORE DATABASE 还原SQLServer数据库