从Microsoft SQL Server导出数据

我有一个应用程序使用PC1上运行的数据库Microsoft SQL Server。

我在另一台PC(PC2)上设置了这个应用程序:

  1. 我在PC2上安装了应用程序
  2. 应用程序在PC2上创build数据库A(应用程序工作)
  3. 我在两台PC上备份数据库A.
  4. 我将数据库A的备份从PC1恢复到PC2。
  5. 该应用程序无法正常工作。 无法连接。
  6. 我将PC2的数据库A的备份恢复到PC2(应用程序工作)

我认为唯一能解决的就是将数据导出到一个SQL文件中,但是我不知道如何。

我正在使用Microsoft SQL Express 2005。

我怀疑你的问题是孤立的用户 。 基本上,您的用户名和login名可以被命名为相同,但是在不同的实例中它们具有不同的sid。

这是一个脚本来显示问题(从链接中解除):

USE MASTER GO SELECT name as SQLServerLogIn,SID as SQLServerSID FROM sys.syslogins WHERE [name] = 'YourAppUser' GO USE YourAppDB GO SELECT name DataBaseID,SID as DatabaseSID FROM sysusers WHERE [name] = 'YourAppUser' GO 

或者,你可以修复它。 有一个内置的程序。 将数据库从第一台PC恢复到第二台PC上并运行:

 USE YourAppDB GO exec sp_change_users_login @action='update_one',@usernamepatter='YourAppUser',@loginname='YourAppUser' GO 

我曾经在很多数据库上运行过,所以我躺在旁边:

 execute sp_MSforeachdb 'USE [?]; exec sp_change_users_login @action=''update_one'',@usernamepattern=''YourAppUser'',@loginname=''YourAppUser''' 

(这使用未logging的sp_MSforeachdb过程在每个数据库上运行该命令。)