Exportar dados do Microsoft SQL Server

1

Eu tenho um aplicativo que usa um banco de dados Microsoft SQL Server em execução no PC1.

Eu configurei esse aplicativo em outro PC (PC2):

  1. Eu instalei o aplicativo no PC2
  2. O aplicativo cria o banco de dados A no PC2 (o aplicativo funciona)
  3. Eu faço um backup do banco de dados A em ambos os PCs
  4. Eu restaurei o backup do banco de dados A do PC1 para o PC2.
  5. O aplicativo não está funcionando. Não é possível conectar-se.
  6. Eu restaurei o backup do PC2 do banco de dados A de volta ao PC2 (o aplicativo funciona)

A única coisa que acho que resolveria isso é exportar os dados para um arquivo SQL, mas não sei como.

Estou usando o Microsoft SQL Express 2005.

    
por Esloop 27.01.2016 / 00:57

1 resposta

4

Eu suspeito que o seu problema seja usuários órfãos . Basicamente, seus usuários e logins podem ter o mesmo nome, mas eles têm sids diferentes nas diferentes instâncias.

Aqui está um script para mostrar o problema (retirado do link):

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

Ou você pode consertar. Há um procedimento interno para isso. Restaure o banco de dados do primeiro PC para o segundo PC e execute:

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

Uma vez eu tive que executar isso em um grande número de bancos de dados, então eu tenho, por aí:

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

(Isso usa o procedimento sp_MSforeachdb não documentado para executar esse comando no todo banco de dados.)

    
por 27.01.2016 / 23:02