我有一个本地数据库"office.mdf“,我希望我的应用程序能够导出数据库并再次导入它,我试图使用backup query来实现这一点
DB.ExecuteNonQuery(@"BACKUP DATABASE [" + Directory.GetCurrentDirectory() + @"\office.mdf] TO DISK = N'" + distination + "'");和恢复查询
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'");我构建了我的项目,并在另一台设备上运行它,然后我导出了数据库,我成功地导入了数据库,但在那之后我无法再连接到数据库,并且我收到了如下消息
Login failed for user "myuser" 那么,首先我如何解决这个问题,然后是什么是导出数据库并从另一个设备导入它的最佳方法?如何将现有的数据库与导出的数据库合并(这样我就不会丢失现有的数据)
发布于 2017-02-24 02:49:31
在SQL Server中,登录名存储在主数据库中的实例级别,而用户存储在每个用户数据库中,并映射到登录名。
听起来,您尝试用于访问数据库的登录名在目标服务器上不存在,或者SID不匹配(通常会使用sp_change_users_login进行更正)。
一个选项是使用CREATE LOGIN ...使用SID,并在要还原此数据库的所有服务器上使用相同的SID。
https://stackoverflow.com/questions/42421260
复制相似问题