2009-08-29 2 views

risposta

24

In Oracle, si potrebbe fare questo:

create table D (
    ID numeric(1), 
    CODE varchar(2), 
    constraint PK_D primary key (ID, CODE) 
); 
+0

cREATE tABLE TR (ID numerico (1), varchar bin (10)) alter table tr aggiungere vincolo pk_id chiave primaria (id, bin) sua non ha funzionato perché – Domnic

+0

Sir sua lavorato grazie – Domnic

+0

@simonn: solo curioso, non posso ch eck adesso, ma il NOT NULL per le colonne è implicito oppure è necessario aggiungerli alle definizioni delle colonne? – Thilo

28

alter table d add constraint pkc_Name primary key (id, code)

dovrebbe farlo. Ci sono molte opzioni per una chiave primaria/indice di base a seconda di quale DB stai lavorando.

+0

create table tr (ID numerico (1), varchar bin (10)) alter table tr aggiungere vincolo pk_id chiave primaria (id, bin) sua non lavorato – Domnic

+0

in sql server 2005 comando è noy lavorato – Domnic

+0

suo lavorato thank u – Domnic

6

Il ALTER TABLE dichiarazione presentata da Chris dovrebbe funzionare, ma prima è necessario dichiarare le colonne NOT NULL. Tutte le parti di una chiave primaria devono essere NOT NULL.

4

Non è necessario creare prima la tabella e quindi aggiungere le chiavi nei passaggi successivi. È possibile aggiungere sia la chiave primaria che la chiave esterna durante la creazione della tabella:

Questo esempio presuppone l'esistenza di una tabella (Codes) che vorremmo fare riferimento alla nostra chiave esterna.

CREATE TABLE d (
id [numeric](1), 
code [varchar](2), 
PRIMARY KEY (id, code), 
CONSTRAINT fk_d_codes FOREIGN KEY (code) REFERENCES Codes (code) 
) 

Se non si dispone di una tabella che siamo in grado di fare riferimento, aggiungere uno come questo in modo che l'esempio funziona:

CREATE TABLE Codes (
    Code [varchar](2) PRIMARY KEY 
    ) 

NOTA: è necessario disporre di un tavolo per fare riferimento prima di creando la chiave esterna.

2

Se si utilizza Sql Server Management Studio Designer, selezionare solo entrambe le righe (Maiusc + clic) e Imposta chiave primaria.

enter image description here

+0

sono abbastanza sicuro che cancelli gli altri vincoli chiave – thanatorr