Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

maomelov

erro na criação de tabela em sql server

Mensagens Recomendadas

maomelov

Boa noite,

Executei a query abaixo para criar a tabela editoras mas surgiu-me um erro que nao percebo o que poderá ser.

Julgo que tem a ver com os campos do tipo UNIQUE. A mensagem de erro menciona que nao é possivel criar a constraint..?! Será que alguém pode dar uma ajudinha?

obrigado a todos

create table tb_editoras
(
    id_editora int primary key identity (1,1),
    nome nvarchar(1000) not null,
    morada nvarchar(1000) not null,
    codigo_postal nchar(8) not null,
    localidade nvarchar(1000) not null,
    telefone nvarchar(16) not null unique,
    email nchar(1000) unique,
    website nvarchar(1000),
    responsavel_contacto nvarchar(1000)
)
go

erro:

Msg 1944, Level 16, State 1, Line 1

Index 'UQ__tb_edito__AB6E6164117F9D94' was not created. This index has a key length of at least 2000 bytes. The maximum permissible key length is 900 bytes.

Msg 1750, Level 16, State 0, Line 1

Could not create constraint. See previous errors.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rechousa

Viva,

Ao introduzires a palavra UNIQUE numa coluna, o que acontece internamente é que é criada uma CONSTRAINT, neste caso com o nome UQ__tb_edito__AB6E6164117F9D94, CONSTRAINT essa que cria uma chave única para cada campo especificado.

Ora, pela mensagem de erro, o máximo que podes ter são 900 bytes. Porém, o teu campo email NCHAR(1000) está a ocupar 2000 bytes (porque cada byte UNICODE correspondem a dois bytes "normais").

O teu campo email precisa mesmo de 1000 caracteres? Não será um email muito grande? :confused:

Já agora, porque é que estás a utilizar o tipo de dados NCHAR para esse campo e não NVARCHAR?


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
maomelov

boa noite,

alterei o tipo do campo email para nvarchar e tamanho 100 e funciona.

Já reparei que cria as chaves unicas.

obrigado pela ajuda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.