服务器上的SQLserver怎么把数据库备份或者复制到本地

服务器上的SQLserver怎么把数据库备份或者复制到本地,第1张

1、打开SqlServer数据库,选中要备份的数据库,【右键】选择【任务】,点击【备份】。

2、输入【数据集】名称,选择备份路径,点击【确定】就完成了数据库的备份。

3、【右键】选择【任务】,点击【还原】,选择【数据库】。

4、选择之前备份的数据库,点击【确定】。

5、至此SqlServer备份还原的 *** 作就已完成。

手头上只有C#的代码,不知道对你有没有帮助

远程备份要注意权限的问题,普通的访问帐户没有备份和还原的权限,最好用sa的帐户,并且程序访问的帐户必须添加到远程机器的系统内

你说的远程备份到本地是不可能的,你只有开放远程某个文件夹加入你的特殊访问帐户权限

最好直接用远程桌面,这样最方便

方法一(不使用SQLDMO):

///

///备份方法

///

SqlConnection conn = new SqlConnection("Server=.Database=masterUser ID=saPassword=sa")

SqlCommand cmdBK = new SqlCommand()

cmdBK.CommandType = CommandType.Text

cmdBK.Connection = conn

cmdBK.CommandText = @"backup database test to disk='C:\ba' with init"

try

{

conn.Open()

cmdBK.ExecuteNonQuery()

MessageBox.Show("Backup successed.")

}

catch(Exception ex)

{

MessageBox.Show(ex.Message)

}

finally

{

conn.Close()

conn.Dispose()

}

///

///还原方法

///

SqlConnection conn = new SqlConnection("Server=.Database=masterUser ID=saPassword=saTrusted_Connection=False")

conn.Open()

//KILL DataBase Process

SqlCommand cmd = new SqlCommand("SELECTspidFROMsysprocesses ,sysdatabases WHEREsysprocesses.dbid=sysdatabases.dbid AND sysdatabases.Name='test'", conn)

SqlDataReader dr

dr = cmd.ExecuteReader()

ArrayList list = new ArrayList()

while(dr.Read())

{

list.Add(dr.GetInt16(0))

}

dr.Close()

for(int i = 0i <list.Counti++)

{

cmd = new SqlCommand(string.Format("KILL {0}", list[i]), conn)

cmd.ExecuteNonQuery()

}

SqlCommand cmdRT = new SqlCommand()

cmdRT.CommandType = CommandType.Text

cmdRT.Connection = conn

cmdRT.CommandText = @"restore database test fromdisk='C:\ba'"

try

{

cmdRT.ExecuteNonQuery()

MessageBox.Show("Restore successed.")

}

catch(Exception ex)

{

MessageBox.Show(ex.Message)

}

finally

{

conn.Close()

}

方法二(使用SQLDMO):

///

///备份方法

///

SQLDMO.Backup backup = new SQLDMO.BackupClass()

SQLDMO.SQLServer server = new SQLDMO.SQLServerClass()

//显示进度条

SQLDMO.BackupSink_PercentCompleteEventHandler progress = new SQLDMO.BackupSink_PercentCompleteEventHandler(Step)

backup.PercentComplete += progress

try

{

server.LoginSecure = false

server.Connect(".", "sa", "sa")

backup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database

backup.Database = "test"

backup.Files = @"D:\test\myProg\backupTest"

backup.BackupSetName = "test"

backup.BackupSetDescription = "Backup the database of test"

backup.Initialize = true

backup.SQLBackup(server)

MessageBox.Show("Backup successed.")

}

catch(Exception ex)

{

MessageBox.Show(ex.Message)

}

finally

{

server.DisConnect()

}

this.pbDB.Value = 0

///

///还原方法

///

SQLDMO.Restore restore = new SQLDMO.RestoreClass()

SQLDMO.SQLServer server = new SQLDMO.SQLServerClass()

//显示进度条

SQLDMO.RestoreSink_PercentCompleteEventHandler progress = new SQLDMO.RestoreSink_PercentCompleteEventHandler(Step)

restore.PercentComplete += progress

//KILL DataBase Process

SqlConnection conn = new SqlConnection("Server=.Database=masterUser ID=saPassword=saTrusted_Connection=False")

conn.Open()

SqlCommand cmd = new SqlCommand("SELECTspid FROMsysprocesses ,sysdatabases WHEREsysprocesses.dbid=sysdatabases.dbid AND sysdatabases.Name='test'", conn)

SqlDataReader dr

dr = cmd.ExecuteReader()

ArrayList list = new ArrayList()

while(dr.Read())

{

list.Add(dr.GetInt16(0))

}

dr.Close()

for(int i = 0i <list.Counti++)

{

cmd = new SqlCommand(string.Format("KILL {0}", list[i]), conn)

cmd.ExecuteNonQuery()

}

conn.Close()

try

{

server.LoginSecure = false

server.Connect(".", "sa", "sa")

restore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database

restore.Database = "test"

restore.Files = @"D:\test\myProg\backupTest"

restore.FileNumber = 1

restore.ReplaceDatabase = true

restore.SQLRestore(server)

MessageBox.Show("Restore successed.")

}

catch(Exception ex)

{

MessageBox.Show(ex.Message)

}

finally

{

server.DisConnect()

}

this.pbDB.Value = 0


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9977812.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存