È possibile incrementare automaticamente una colonna in SQL Server SENZA che sia una chiave primaria?SQL Server incrementa automaticamente una colonna senza chiave primaria
Se sì, come può essere fatto.
Grazie
È possibile incrementare automaticamente una colonna in SQL Server SENZA che sia una chiave primaria?SQL Server incrementa automaticamente una colonna senza chiave primaria
Se sì, come può essere fatto.
Grazie
Sì. Non è necessario che le colonne IDENTITY
siano impostate come chiave primaria.
CREATE TABLE T
(
X INT PRIMARY KEY,
Y INT IDENTITY(1,1)
)
Anche se non sono sicuro quando ciò sarebbe utile. Se si dispone di una chiave naturale che si desidera utilizzare come PK, è probabile che si desideri applicare un vincolo univoco alla chiave alternativa surrogata.
Per l'impostazione delle relazioni FK a SQL Server non interessa se la/e colonna/e è/o PK o semplicemente richiede un indice univoco su di esso/su di esse.
È un modo semplice per ricordare la sequenza in cui i record sono stati aggiunti alla tabella. –
@Larry - Ah, certo. Non ci ho pensato. –
@Larry, quindi è un CreatedDate con predefinito (getdate()), che è molto più significativo –
Dichiarare la colonna con la parola chiave IDENTITY e semplicemente non creare un vincolo PRIMARY KEY su di essa.
Certo - la colonna deve essere dichiarata come INT IDENTITY (o BIGINT) - questo è tutto quello che c'è da fare. Nessun requisito per essere la chiave primaria - nessuna per niente ... –
Cosa ti ha costretto dal ... provare? –
@adrian: ... non sul tuo sistema di produzione, per favore! :-) –