我有一个应用程序使用PC1上运行的数据库Microsoft SQL Server。
我在另一台PC(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过程在每个数据库上运行该命令。)