Sql (ajuda) - Versão de Impressão +- Forum Pplware (http://forum.pplware.com) +-- Fórum: Mais Tech (/forumdisplay.php?fid=11) +--- Fórum: Programação e Web (/forumdisplay.php?fid=16) +--- Tópico: Sql (ajuda) (/showthread.php?tid=10185) |
Sql (ajuda) - Article0 - 21-11-2011 12:05 Bom dia, Ando a testar umas coisas em sql, no sql server 2008 r2 e tenho um problema. Ao fazer as relações com as tabelas da-me um erro. Fui pesquisar e penso que é assim, mas se nao for ajudem-me por favor. create table restaurantes( cod_restaurante int constraint pkCODrestaurante primary key, nome varchar(20), cidade varchar(20), cod_cidade int constraint relac_01 references cidades(cod_cidade), cod_empregado int constraint relac_02 references empregados(cod_empregado) ) create table cidades( cod_cidade int constraint pkCODcidade primary key, nome varchar(20), cod_empregado int constraint relac_03 references empregados(cod_empregado), cod_restaurante int constraint relac_04 references restaurantes(cod_restaurante) ) create table empregados( cod_empregado int constraint pkCODempregado primary key, nome varchar(20), data_nascimento date, cidade varchar(20), cod_restaurante int constraint relac_05 references restaurantes(cod_restaurante), sexo varchar(20) ) cumprimentos, Article0 RE: Sql (ajuda) - Caça - 21-11-2011 14:24 E qual é o erro? RE: Sql (ajuda) - Article0 - 21-11-2011 14:49 Diz que a tabelas no que faço as relações nao existem. Posso fazer as relações depois de criar as tabelas? Com o Alter? RE: Sql (ajuda) - Caça - 21-11-2011 19:54 As relações devem ser feitas através do Alter Table, depois de as tabelas estarem criadas. RE: Sql (ajuda) - Article0 - 22-11-2011 12:47 Ja consegui resolver. Primeiro criei as tabelas create table restaurantes( cod_restaurante int identity primary key, nome varchar(20), cidade varchar(20), cod_cidade int, cod_empregado int ) create table cidades( cod_cidade int identity primary key, nome varchar(20), cod_empregado int, cod_restaurante int, ) create table empregados( cod_empregado int identity primary key, nome varchar(20), data_nascimento date, cidade varchar(20), cod_restaurante int, sexo varchar(20) ) E depois crei as relaçóes a parte com um diagrama. Aproveitei essa ferramenta do sql server 2008 r2. Obrigado pelas ajudas cumprimentos, Article0 RE: Sql (ajuda) - Korobase - 24-02-2012 00:39 Apesar da já teres encontrado uma solução deixo-te outra sugestão. As relações entre as tabelas pode e deve ser definida a quando da criação das tabelas. Por exemplo a relação entres esta duas tabelas que forneces-te, create table restaurantes( cod_restaurante int constraint pkCODrestaurante primary key, nome varchar(20), cidade varchar(20), cod_cidade int constraint relac_01 references cidades(cod_cidade), cod_empregado int constraint relac_02 references empregados(cod_empregado) ) create table cidades( cod_cidade int constraint pkCODcidade primary key, nome varchar(20), cod_empregado int constraint relac_03 references empregados(cod_empregado), cod_restaurante int constraint relac_04 references restaurantes(cod_restaurante) ) pode ser feita com a criação de outra tabela que é na verdade uma relação. Neste caso poderia ser uma tabela com o nome "contem" em que referências as chaves primarias das tabelas "cidades" e "restaurantes" com chaves estrangeiras da tabela "contem". exemplo: create table contem( cod_Cid int not null primary key, cod_res int not null, foreign key(cod_Cid) references cidade(cod_cidade), foreign key(cod_res) references restaurante(cod_restaurante) ) Fica este exemplo então de com definir as relações, que na minha opinião é a correta. Espero que te seja útil. |