У меня есть приложение, использующее базу данных Microsoft SQL Server, работающую на ПК1.
Я установил это приложение на другом ПК (ПК2):
Я думаю, что единственное, что может решить эту проблему, - это экспорт данных в файл SQL, но я не знаю, как это сделать.
Я использую Microsoft SQL Express 2005.
Я подозреваю, что твоя проблема осиротевшие пользователи. По сути, ваши пользователи и логины могут называться одинаково, но у них разные идентификаторы на разных экземплярах.
Вот скрипт, показывающий проблему (взят из ссылки):
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
Или вы можете просто исправить это. Для этого есть встроенная процедура. Восстановите базу данных с первого ПК на второй ПК и запустите:
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'''
(Здесь используется недокументированная процедура sp_MSforeachdb для запуска этой команды на каждый база данных.)