我对微软的所有事情都很陌生......我一直在苦苦思索如何使用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操作的查询。不确定如何确认我是否拥有访问权限。
我浪费了这么多时间......我很沮丧......微软是否试图让事情变得非常困难?有人可以告诉我如何成功导入/导出数据库,以便我可以回到做我喜欢做的事情吗?即。发展!!!
其他信息
好的,我按照一些人的建议尝试了备份方法。这不起作用,因为SSMS正在数据库服务器上创建备份文件,而不是我正在使用的计算机的HD。我无权访问数据库服务器上的文件系统,因此SSMS一直抱怨它没有写入任何目录的权限。
答案 0 :(得分:3)
对数据库进行完整备份。您可以从SQL Server Management Studio执行此操作(右键单击数据库,选择'tasks'并选择'backup'。然后填写空白。或者您可以通过SQL Query执行此操作,如下所示:< / p>
backup database sandbox
to disk='C:\sql-backup\sandbox.bak'
with name='sandbox-Full Database Backup' ,
noformat ,
init ,
skip ,
norewind ,
nounload ,
stats=10
将其复制到目标SQL服务器 - FTP,在CD上刻录等等。可能首先要压缩它,具体取决于它的大小。
在目标服务器上打开SQL Server管理工作室。在对象资源管理器中,右键单击数据库选项卡,选择“还原数据库...”,然后您将获得一个2面板对话框。在“常规”下,您需要
然后点击确定。
您还需要确保2个SQL Server实例上的默认归类序列相同。否则你几乎肯定会遇到问题。
答案 1 :(得分:0)
令人气愤
答案 2 :(得分:0)
How to get script of SQL Server data?
该链接向您展示如何将数据导出为一系列sql insert语句。然后,您可以在新的dbase上执行这些语句。