Como você cria um relacionamento de chave estrangeira em um banco de dados SQL Server CE (Compact Edition)?

StackOverflow https://stackoverflow.com/questions/46827

Pergunta

O Visual Studio 2005 não fornece uma interface para criar relacionamentos entre tabelas em um banco de dados SQL Server CE (estou usando a versão 3.0) e você não pode abrir um banco de dados Compact Edition usando o Management Studio, até onde eu sei.Alguma ideia?

Foi útil?

Solução

Infelizmente, atualmente não há suporte de designer (ao contrário do SQL Server 2005) para a construção de relacionamentos entre tabelas no SQL Server CE.Para construir relacionamentos você precisa usar comandos SQL como:

ALTER TABLE Orders
ADD CONSTRAINT FK_Customer_Order
FOREIGN KEY (CustomerId) REFERENCES Customers(CustomerId)

Se você estiver desenvolvendo CE, recomendo este FAQ:

EDITAR:No Visual Studio 2008 agora é possível fazer isso na GUI clicando com o botão direito na sua tabela.

Outras dicas

Estúdio Visual 2008 faz tem um designer que permite adicionar FK's.Basta clicar com o botão direito na tabela...Propriedades da tabela e vá para a seção "Adicionar relações".

Você precisa criar uma consulta (no Visual Studio, clicar com o botão direito na conexão do banco -> Nova Consulta) e executar o seguinte SQL:

ALTER TABLE tblAlpha
ADD CONSTRAINT MyConstraint FOREIGN KEY (FK_id) REFERENCES
tblGamma(GammaID)
ON UPDATE CASCADE

Para verificar se sua chave estrangeira foi criada, execute o seguinte SQL:

SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS

Crédito para E Jensen (http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=532377&SiteID=1)

Alan está certo quando diz que há suporte de designer.Rhywun está incorreto quando sugere que você não pode escolher a tabela de chave estrangeira.O que ele quer dizer é que na interface do usuário o menu suspenso da tabela de chave estrangeira está esmaecido - tudo isso significa que ele não clicou com o botão direito na tabela correta para adicionar a chave estrangeira.

Em resumo, clique com o botão direito na tabela de chave estrangeira e, em seguida, através da opção 'Propriedades da tabela' > 'Adicionar relações', selecione a tabela de chave primária relacionada.

Já fiz isso inúmeras vezes e funciona.

Passo a passo:Criando um banco de dados SQL Server Compact 3.5

Para criar um relacionamento entre as tabelas criadas no procedimento anterior

  1. No Server Explorer/Database Explorer, expanda Tabelas.
  2. Clique com o botão direito na tabela Pedidos e clique em Propriedades da Tabela.
  3. Clique em Adicionar relações.
  4. Digite FK_Orders_Customers na caixa Nome da Relação.
  5. Selecione CustomerID na lista Coluna da Tabela de Chave Estrangeira.
  6. Clique em Adicionar colunas.
  7. Clique em Adicionar relação.
  8. Clique em OK para concluir o processo e criar o relacionamento no banco de dados.
  9. Clique em OK novamente para fechar a caixa de diálogo Propriedades da tabela.
create table employee
(
   empid int,
   empname varchar(40),
   designation varchar(30),
   hiredate datetime, 
   Bsalary int,
   depno constraint emp_m foreign key references department(depno)
)

Deveríamos ter uma chave primária para criar uma chave estrangeira ou relacionamento entre duas ou mais tabelas.

Eu sei que já faz "muito tempo" desde que essa pergunta foi feita pela primeira vez.Por precaução, se ajudar alguém,

A adição de relacionamentos é bem suportada pelo MS por meio do SQL Server Compact Tool Box (https://sqlcetoolbox.codeplex.com/).Basta instalá-lo e você terá a opção de conectar-se ao banco de dados compacto usando a janela Server Explorer.Clique com o botão direito na tabela primária e selecione "Propriedades da tabela".Você deverá ter a seguinte janela, que contém a guia "Adicionar relações", permitindo adicionar relações.

Add Relations Tab - SQL Server Compact Tool Box

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top