【发布时间】:2011-06-11 01:37:16
【问题描述】:
我对 Microsoft 的所有事物都是新手...我一直在努力研究如何使用 SQL Server Management Studio 2008 导出数据库并将其导入另一个数据库服务器。我是 LAMP 开发人员,所以如果这是一个 mysql 数据库,我会在 shell 终端中输入以下内容:
mysqldump -u src_dbuser -psrc_password -h src_dbserver src_dbname > export.sql
mysql -u dest_dbuser -pdest_password -h dest_dbserver dest_dbname < export.sql
如何在 SQL Server 中执行等效任务?我尝试了很多事情,但都失败了。我的团队在 SQL Server Management Studio 中尝试的示例:
1) 我的客户端右键单击数据库,选择“任务”,选择“生成脚本...”,然后按照后续弹出窗口中概述的步骤进行操作。在这样做的过程中,我们得到了一个 db-schema 和所有存储过程的 sql 文件,但它丢失了所有数据。我们没有看到导出数据的选项。
2) 所以我的客户决定将数据导出为 excel 文件。当我尝试导入 excel 文件时,其中一个实体记录违反了 db 约束。 excel 文件有一个“空单元格”,用于映射到相应数据库表中不可为空的列的字段。这一条记录停止并退出剩余的导入过程。我不知道如何告诉 Sql Server Management Studio 忽略这条记录并继续导入其余数据。
3) 然后我尝试自己在家远程进行导出,以查看我的客户是否遗漏了什么。在重现步骤 2) 中概述的步骤时,导出时出现新错误
Microsoft.SqlServer.Management.Smo.SmoException: Could not read metadata, possibly due to insufficient access rights. at Microsoft.SqlServer.Management.SqlScriptPublish.GeneratePublishPage.worker_DoWork(Object sender, DoWorkEventArgs e) at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e) at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
我认为我拥有所有访问权限,因为我可以成功执行执行 CRUD 操作的查询。不知道如何确认我是否拥有访问权限。
我在这件事上浪费了这么多时间...我很沮丧...微软是否试图让事情变得异常困难?有人可以告诉我如何成功导入/导出数据库,以便我可以重新做我喜欢做的事情吗??? IE。发展!!!
其他信息
好的,我尝试了一些人建议的备份方法。这不起作用,因为 SSMS 正在数据库服务器上创建备份文件,而不是我正在使用的计算机的 HD。我无权访问数据库服务器上的文件系统,这就是为什么 SSMS 一直抱怨它没有写入任何目录的权限。
【问题讨论】:
-
您是否尝试过进行备份和恢复?
标签: sql-server