• Imprimir

insert into  [BANCO_DESTINO].[dbo].[TABELA_DESTINO]   select * FROM [BANCO_ORIGEM].[dbo].[TABELA_ORIGEM] 

 

Ou utilizando o DTSWizard.exe (telinha grafica conhecida como  IMPORT AND EXPORT DATA )

 

 

Com tudo pode acontecer o seguintes erros :

 

 

 Validating (Error)

Messages

Error 0xc0202049: Data Flow Task 1: Failure inserting into the read-only column "Number".

 (SQL Server Import and Export Wizard)

 

Error 0xc0202045: Data Flow Task 1: Column metadata validation failed.

 (SQL Server Import and Export Wizard)

 

Error 0xc004706b: Data Flow Task 1: "Destination - AccountCharacter" failed validation and returned validation status "VS_ISBROKEN".

 (SQL Server Import and Export Wizard)

 

Error 0xc004700c: Data Flow Task 1: One or more component failed validation.

 (SQL Server Import and Export Wizard)

 

Error 0xc0024107: Data Flow Task 1: There were errors during task validation.

 (SQL Server Import and Export Wizard)

 

 

Isto porque existe regras no destino tipo auto incremento que complicam a vida do DBA.

 

Assim devemos proceder da seguinte maneira :

 

============================  VIA DBA RAIZ. =================================

 

 

 

COMMIT

BEGIN TRANSACTION

CREATE TABLE <TABELATEMP> --deve ter a mesma estrutura da que vc irá incluir o campo identity

 (

 <campo> smallint NOT NULL IDENTITY (1, 1), --este é o campo que eu quero como identity

 <outros campor>--incluo todos os campos da tabela sem identity

 )  ON [PRIMARY]

GO

SET IDENTITY_INSERT <TABELATEMP> ON --novamente se usa a tabela temporária

GO

IF EXISTS(SELECT * FROM <TABELA_ANTIGA>) --Agora se usa o nome da tabela antigo que será substituida pela temporária

  EXEC('INSERT INTO <TABELATEMP> (<CAMPOS>) SELECT <CAMPOS> FROM <TABELA_ANTIGA> TABLOCKX')--Aqui passo os dados da tabela antiga para a nova

GO

SET IDENTITY_INSERT <TABELATEMP> OFF--finalizo o scrip de inserção

GO

DROP TABLE <TABELA_ANTIGA> -- apago minha tabela antiga

GO

EXECUTE sp_rename N'<TABELATEMP>', N'<TABELA_ANTIGA>', 'OBJECT' --renomeio minha tabela temporária para o nome da antiga

GO

ALTER TABLE <TABELA_ANTIGA> ADD CONSTRAINT    --insiro as ultimas informações da minha tabela

 CP_<TABELA_ANTIGA> PRIMARY KEY NONCLUSTERED 

 (

 <CAMPOCHAVE>

 ) ON [PRIMARY]

 

GO

COMMIT

 

============================  VIA DBA NUTRELA =================================

 

1-Ir ao menu do Microsoft SQL Server Management Studio: ferramentas -> opções ... abrirá a tela abaixo, a opção em destaque deverá desmarcada.

 

 

2-Depois é só ir na tabela que deseja alterar para IDENTITY clicar com o botão direito do mouse e aparecerá a opção DESIGNER ao clicar na opção a tela abaixo será apresentada, aí é só alterar para YES.