Jump to content

erro na criação de tabela em sql server


maomelov
 Share

Recommended Posts

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.

Link to comment
Share on other sites

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? 😕

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

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.