У меня есть приложение, использующее базу данных 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 для запуска этого команды для каждой базы данных.)