Inicial > SQL Server > Upgrade SQL Server

Upgrade SQL Server

Ao migrar de SQL 2000 para SQL 2005 existem algumas considerações importantes no Transact-SQL que necessitam de nossa atenção, por exemplo existem alguns comandos que hoje estão rodando normalmente no SQL 2000 e ao migrar simplesmente não funcionam, vamos a alguns exemplos.

 

/*

  Exemplo de sintaxes que não funcionam ao migrar de SQL 2000 para 2005

*/

 

use master

 

if exists(select * from master.dbo.sysdatabases where name = ‘TesteCompatibilidade’)

begin

  drop database TesteCompatibilidade

end

 

create database TesteCompatibilidade

 

use TesteCompatibilidade

 

if OBJECT_ID(‘teste’) is not null

begin

  drop table teste

end

GO

 

— Vamos criar uma tabela para teste

create table teste (id int Identity(1,1), nome VarChar(200) default NEWID())

GO

 

— Vamos incluir 10 linhas na tabela teste

insert into teste values(default)

go 10

 

create index ix_teste on teste(nome)

GO

 

— Seta o banco para usar o nivel de compatibilidade do SQL Server 2000(80)

— Consultas que funcionam normalmente no SQL Server 2000

sp_dbcmptlevel TesteCompatibilidade, 80

GO

–Consulta forcando o uso de um indice sem colocar o WITH depois do nome da tabela

select * from teste(index=ix_teste)

GO

— Consulta usando order by baseado em uma coluna, porem o alias ID é do mesmo nome da coluna ID

— repare que o SQL ordenou a tabela pelo campo ID da tabela e não pelo alias ID(campo nome)

select ID, Nome as ID  from teste order by ID

GO

–Consulta usando order by passando o Nome da tabela mais o alias da coluna

select ID, Nome as AliasParaNome  from teste order by teste.AliasParaNome

GO

 

— Marca o banco para usar o nivel de compatibilidade do SQL Server 2005

— Os mesmo selects efetuados acima não funcionan no SQL Server 2005

sp_dbcmptlevel TesteCompatibilidade, 90

GO

–Consulta forcando o uso de um indice sem colocar o WITH depois do nome da tabela

select * from teste(index=ix_teste)

GO

— Consulta usando order by baseado em uma coluna, porem o alias ID é do mesmo nome da coluna ID

— repare que o SQL ordenou a tabela pelo campo ID da tabela e não pelo alias ID(campo nome)

select ID, Nome as ID  from teste order by ID

GO

–Consulta usando order by passando o Nome da tabela mais o alias da coluna

select ID, Nome as AliasParaNome  from teste order by teste.AliasParaNome

 

A Microsoft disponibiliza um software que ajuda a evitar surpresas como estas, ele se chama “Microsoft SQL Server 2005 Upgrade Advisor” vale a pena baixar o software e rodar ele na sua base para ver as incompatibilidades. Também vale a pena dar uma lida no “SQL Server 2005 Upgrade Technical Reference Guide”.

 

_________________________________________________________________
Fabiano Neves Amorim (MCP – MCTS – SQL Server)
Análise – NewCon Enterprise
* fabiano@cnpm.com.br – http://fabianosqlserver.spaces.live.com/

( (55 – 14) 3404-3700

Categorias:SQL Server
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: