RELACIONAMENTO NO MSDE

USUARIO.EXCLUIDOS 26/05/2004 14:12:51
#26759
Ola, galera.
To c/ um probleminha na migracao das tabelas do ACCESS para o MSDE.
Tenho o Seguinte:
[/c]

- Tab_Familia
*Chave = Familia

- Tab_Marca
*Chave = Marca

- Tab_Modelo
*Chave = Familia -relacionamento c/ Tab_Famila
Marca -relacionamento c/ Tab_Marca
Modelo

- Tab_Localidade
*Chave = Localidade

- Tab_Produto
*Chave = Localidade -relacionamento c/ Tab_Localidade
Familia -relacionamento c/ Tab_Modelo
Marca -relacionamento c/ Tab_Modelo
Modelo -relacionamento c/ Tab_Modelo
Complemento

Fazendo isso no Menu Relacionamento do ACCESS dava tudo certo, mas eu sei que as validacoes do ACCESS nao sao tao rigidas qto do SQL (MSDE, no caso).

Estou usando um prog. que funciona como o Enterprise Manager, chamado
SQL Lite, nele eu digito as linhas abaixo e da o seguinte erro:
- Nao existem chaves primarias ou candidatas na tabela de referencia 'Tab_Modelo' que corresponde, a lista de colunas de referencia na chave externa 'FK__Tab_Produto___422D4EF'

Imagino que seja algum erro na mameira em que estou relacionando as Tabelas, mas nao consigo pensar em outra forma mais pratica.

Segue o Codigo:

/* Tab_Familia - CRIAR TABELA E CHAVE PRIMARIA */
CREATE TABLE Tab_Familia (
Familia Char (3) Not Null,
Descricao VarChar (25) Null,
DataHora SmallDateTime Null
)
GO

ALTER TABLE Tab_Familia Add Primary Key (Familia)
GO

/* Tab_Marca - CRIAR TABELA E CHAVE PRIMARIA */
CREATE TABLE Tab_Marca (
Marca Char (3) Not Null,
Descricao VarChar (25) Null,
DataHora SmallDateTime Null
)
GO

ALTER TABLE Tab_Marca Add Primary Key (Marca)
GO

/* Tab_Modelo - CRIAR TABELA E CHAVE PRIMARIA */
CREATE TABLE Tab_Modelo (
Familia Char (3) Not Null,
Marca Char (3) Not Null,
Modelo Char (3) Not Null,
Descricao VarChar (25) Null,
DataHora SmallDateTime Null
)
GO

ALTER TABLE Tab_Modelo Add Primary Key (Modelo, Marca, Familia)
GO

ALTER TABLE Tab_Modelo Add Foreign Key (Familia) REFERENCES Tab_Familia(Familia)
ALTER TABLE Tab_Modelo Add Foreign Key (Marca) REFERENCES Tab_Marca (Marca)
GO

/* Tab_Localidade - CRIAR TABELA E CHAVE PRIMARIA */
CREATE TABLE Tab_Localidade (
Localidade Char (2) Not Null,
Nome VarChar (40) Null,
Razao_Social VarChar (40) Null,
Endereco VarChar (40) Null,
Numero VarChar (5) Null,
Bairro VarChar (30) Null,
CEP Char (9) Null,
Cidade VarChar (30) Null,
Estado Char (2) Null,
Pais VarChar (30) Null,
Telefone VarChar (16) Null,
CNPJ VarChar (18) Null,
Inscricao_Estadual VarChar (19) Null,
DataHora SmallDateTime Null
)
GO

ALTER TABLE Tab_Localidade Add Primary Key (Localidade)
GO

/* Tab_Produto - CRIAR TABELA E CHAVE PRIMARIA */
CREATE TABLE Tab_Produto (
Localidade Char (2) Not Null,
Familia Char (3) Not Null,
Marca Char (3) Not Null,
Modelo Char (3) Not Null,
Complemento VarChar (6) Not Null,
Descricao VarChar (44) Null,
Unidade VarChar (3) Null,
Custo Float Null,
Custo_Medio Float Null,
Codigo_Fiscal Float Null,
DataHora SmallDateTime Null
)
GO

ALTER TABLE Tab_Produto Add Primary Key (Complemento, Modelo, Marca, Familia, Localidade)
GO

ALTER TABLE Tab_Produto Add Foreign Key (Localidade) REFERENCES Tab_Localidade (Localidade)
ALTER TABLE Tab_Produto Add Foreign Key (Familia, Marca, Modelo) REFERENCES Tab_Modelo (Familia, Marca, Modelo)
GO
[c]


Agradeco toda ajuda desde ja.

Te +[S56]
USUARIO.EXCLUIDOS 26/05/2004 21:44:47
#26854
Resposta escolhida
WALDIRJR, repare nas duas linhas abaixo (nos campos em negrito), não existe problema algum no MSDE e sim nos comandos SQL.

ALTER TABLE Tab_Modelo Add Primary Key (Modelo, Marca, Familia)

ALTER TABLE Tab_Produto Add Foreign Key (Familia, Marca, Modelo) REFERENCES Tab_Modelo (Familia, Marca, Modelo)

Existe um inversão de colunas na Foreign Key em relação a Primary Key da tabela Tab_Modelo.

PROFESSOR,
1) Baixe o MSDE do site www.microsoft.com http://www.microsoft.com/downloads/details.aspx?FamilyID=6e9a7403-c4ba-4d98-bb0b-2c9d6414071f&DisplayLang=en
2) Execute o setup.exe e utilize o método NNF (Next, Next e Finish);
3) Tem o SQL Lite que Waldir disse usar e tem o TOAD For SQL Server http://www.toadsoft.com/toadsqlserver/toad_sqlserver.htm;
4) Até onde sei ele é gratuito para desenvolvimento;
5) Ele é suportado no seguintes OS: Windows 2000 Service Pack 2, Windows 2000 Service Pack 3, Windows 2000 Service Pack 4, Windows Server 2003, Windows XP
Tópico encerrado , respostas não são mais permitidas