首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入和导出数据mdf sqlserver

导入和导出数据mdf sqlserver
EN

Stack Overflow用户
提问于 2017-02-24 00:29:36
回答 1查看 481关注 0票数 0

我有一个本地数据库"office.mdf“,我希望我的应用程序能够导出数据库并再次导入它,我试图使用backup query来实现这一点

代码语言:javascript
复制
DB.ExecuteNonQuery(@"BACKUP DATABASE [" + Directory.GetCurrentDirectory() + @"\office.mdf] TO DISK = N'" + distination + "'");

和恢复查询

代码语言:javascript
复制
 DB.ExecuteNonQuery(@"USE [master]; RESTORE DATABASE [" + Directory.GetCurrentDirectory() + @"\office.mdf] " + 
        @"FROM DISK = N'" + source + "'  WITH FILE = 1 , NOUNLOAD, REPLACE, STATS = 10 , NORECOVERY , " +
        @" MOVE 'office_log' TO '" +  Directory.GetCurrentDirectory() + @"\office_log.ldf'" +
        @" MOVE 'office' TO '" + Directory.GetCurrentDirectory() + @"\office.mdf'");

我构建了我的项目,并在另一台设备上运行它,然后我导出了数据库,我成功地导入了数据库,但在那之后我无法再连接到数据库,并且我收到了如下消息

代码语言:javascript
复制
Login failed for user "myuser" 

那么,首先我如何解决这个问题,然后是什么是导出数据库并从另一个设备导入它的最佳方法?如何将现有的数据库与导出的数据库合并(这样我就不会丢失现有的数据)

EN

回答 1

Stack Overflow用户

发布于 2017-02-24 02:49:31

在SQL Server中,登录名存储在主数据库中的实例级别,而用户存储在每个用户数据库中,并映射到登录名。

听起来,您尝试用于访问数据库的登录名在目标服务器上不存在,或者SID不匹配(通常会使用sp_change_users_login进行更正)。

一个选项是使用CREATE LOGIN ...使用SID,并在要还原此数据库的所有服务器上使用相同的SID。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42421260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档