Domanda

Visual Studio 2005 non fornisce un'interfaccia per la creazione di relazioni tra tabelle in un database SQL Server CE (sto utilizzando la versione 3.0) e, per quanto ne so, non è possibile aprire un DB Compact Edition utilizzando Management Studio.Qualche idea?

È stato utile?

Soluzione

Sfortunatamente al momento non è disponibile alcun supporto per i progettisti (a differenza di SQL Server 2005) per la creazione di relazioni tra tabelle in SQL Server CE.Per costruire relazioni è necessario utilizzare comandi SQL come:

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

Se stai sviluppando CE, consiglierei queste domande frequenti:

MODIFICARE:In Visual Studio 2008 è ora possibile farlo nella GUI facendo clic con il pulsante destro del mouse sulla tabella.

Altri suggerimenti

Visual Studio 2008 fa avere un designer che ti permetta di aggiungere FK.Basta fare clic con il pulsante destro del mouse sulla tabella...Proprietà tabella, quindi vai alla sezione "Aggiungi relazioni".

È necessario creare una query (in Visual Studio, fare clic con il pulsante destro del mouse sulla connessione DB -> Nuova query) ed eseguire il seguente SQL:

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

Per verificare che la chiave esterna sia stata creata, esegui il seguente SQL:

SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS

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

Alan ha ragione quando dice che c'è il supporto del designer.Rhywun non è corretto quando implica che non è possibile scegliere la tabella delle chiavi esterne.Ciò che intende è che nell'interfaccia utente il menu a discesa della tabella delle chiavi esterne è disattivato: tutto ciò significa che non ha fatto clic con il pulsante destro del mouse sulla tabella corretta a cui aggiungere la chiave esterna.

In sintesi, fai clic con il pulsante destro del mouse sulla tabella delle chiavi straniere e quindi tramite l'opzione "Proprietà tabella" > "Aggiungi relazioni" seleziona la tabella delle chiavi primarie correlata.

L'ho fatto numerose volte e funziona.

Procedura dettagliata:Creazione di un database SQL Server Compact 3.5

Per creare una relazione tra le tabelle create nella procedura precedente

  1. In Esplora server/Esplora database espandere Tabelle.
  2. Fare clic con il pulsante destro del mouse sulla tabella Ordini e quindi fare clic su Proprietà tabella.
  3. Fare clic su Aggiungi relazioni.
  4. Digita FK_Orders_Customers nella casella Nome relazione.
  5. Selezionare CustomerID nell'elenco delle colonne della tabella delle chiavi esterne.
  6. Fare clic su Aggiungi colonne.
  7. Fare clic su Aggiungi relazione.
  8. Fare clic su OK per completare il processo e creare la relazione nel database.
  9. Fare nuovamente clic su OK per chiudere la finestra di dialogo Proprietà tabella.
create table employee
(
   empid int,
   empname varchar(40),
   designation varchar(30),
   hiredate datetime, 
   Bsalary int,
   depno constraint emp_m foreign key references department(depno)
)

Dovremmo avere una chiave primaria per creare una chiave esterna o una relazione tra due o più tabelle.

So che è passato "molto tempo" da quando questa domanda è stata posta per la prima volta.Per ogni evenienza, se aiuta qualcuno,

L'aggiunta di relazioni è ben supportata da MS tramite SQL Server Compact Tool Box (https://sqlcetoolbox.codeplex.com/).Basta installarlo e avrai la possibilità di connetterti al database compatto utilizzando la finestra Esplora server.Fare clic con il tasto destro sulla tabella primaria, selezionare "Proprietà tabella".Dovresti avere la seguente finestra, che contiene la scheda "Aggiungi relazioni" che ti consente di aggiungere relazioni.

Add Relations Tab - SQL Server Compact Tool Box

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top