2008-09-05 12 views

Respuesta

67

Desafortunadamente, actualmente no hay soporte de diseñador (a diferencia de SQL Server 2005) para construir relaciones entre tablas en SQL Server CE. Para construir relaciones es necesario utilizar comandos SQL tales como:

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

Si usted está haciendo el desarrollo de la CE, recomiendo este FAQ:

EDITAR: En Visual Studio 2008 esto es ahora posible hacer en la GUI haciendo clic derecho en su mesa.

+2

Creo que se está perdiendo la palabra clave CONSTRAINT. Al menos en SQL Server CE 3.5 ... ALTER TABLE Orders ADD CONSTRAINT FK_Customer_Order FOREIGN KEY (CustomerId) REFERENCIAS Clientes (CustomerId) – Edo

7

Es necesario crear una consulta (en Visual Studio, haga clic en la conexión DB -> Nueva consulta) y ejecutar el siguiente código SQL:

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

para verificar que su clave externa fue creado, ejecutar el siguiente código SQL:

SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS 

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

44

Visual Studio 2008 hace tiene un diseñador que le permite agregar FK. Simplemente haga clic con el botón derecho en la tabla ... Propiedades de la tabla, luego vaya a la sección "Agregar relaciones".

HTH

+0

Creo que estaba usando VS 2005 cuando tuve este problema. ¡Es bueno saber que ahora puede hacerlo a través de la interfaz de usuario en VS 2008! –

3

Alan es correcto cuando dice que hay apoyo diseñador. Rhywun es incorrecto cuando implica que no puede elegir la tabla de clave foránea. Lo que quiere decir es que en la interfaz de usuario, el menú desplegable de la tabla de claves externas está atenuado; todo eso significa que no ha hecho clic con el botón derecho en la tabla correcta para agregar la clave externa.

En resumen, haga clic con el botón derecho en la tabla de claves foriegn y luego, a través de la opción 'Propiedades de tabla'> 'Agregar relaciones', seleccione la tabla de clave primaria relacionada.

Lo he hecho muchas veces y funciona.

+0

Gracias Rob, este me fue el truco. – Spidey

1
create table employee 
(
    empid int, 
    empname varchar(40), 
    designation varchar(30), 
    hiredate datetime, 
    Bsalary int, 
    depno constraint emp_m foreign key references department(depno) 
) 

Debemos tener una clave principal para crear una clave foránea o una relación entre dos o más tablas.

1

Sé que es un "tiempo muy largo" desde que se hizo esta pregunta por primera vez. Por si acaso, si ayuda a alguien,

La adición de relaciones es bien soportada por MS a través de la caja de herramientas de SQL Server Compact (https://sqlcetoolbox.codeplex.com/). Simplemente instálelo, luego tendrá la opción de conectarse a la Base de Datos Compacta usando la Ventana del Explorador de Servidores. Haga clic derecho en la tabla principal, seleccione "Propiedades de la tabla". Debería tener la siguiente ventana, que contiene la pestaña "Agregar relaciones" que le permite agregar relaciones.

Add Relations Tab - SQL Server Compact Tool Box

2

Walkthrough: Creating a SQL Server Compact 3.5 Database

Para crear una relación entre las tablas creadas en el procedimiento anterior

  1. En el Explorador de servidores Explorador/Base de datos, expanda Tablas.
  2. Haga clic con el botón derecho en la tabla Pedidos y luego haga clic en Propiedades de la tabla.
  3. Haga clic en Agregar relaciones.
  4. Escriba FK_Orders_Customers en el cuadro Nombre de la relación.
  5. Seleccione CustomerID en la lista Columna de tabla de clave externa.
  6. Haga clic en Agregar columnas.
  7. Haga clic en Agregar relación.
  8. Haga clic en Aceptar para completar el proceso y crear la relación en la base de datos .
  9. Haga clic en Aceptar nuevamente para cerrar el cuadro de diálogo Propiedades de la tabla.
Cuestiones relacionadas