SL Server: Chiave primaria e colonna identità di tipo varchar

mercoledì 26 maggio 2010 - 23.39

86Marco Profilo | Expert

Salve,
per il mio database devo creare delle tabelle che dovrenno contenere i nomi di articoli commerciali.
Il problema è che ogni articolo non deve essere gestito con un campo intero e quindi settato come chiave primaria e colonna identità.
Il codice dell'articolo e quindi la chiave primaria devono essere di tipo varchar, in modo tale da poterlo inserire io tramite una casella di testo.

Come si setta una colonna identità di tipo varchar? ho difficoltà a farlo.
Grazie

lbenaglia Profilo | Guru

>Come si setta una colonna identità di tipo varchar? ho difficoltà
>a farlo.

Ciao Marco,

Confesso di aver capito poco
Quello che ti posso dire è che l'attributo IDENTITY può essere attribuito esclusivamente a colonne numeriche (tinyint, smallint, int, bigint, decimal(p,0) o numeric(p,0)).

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

86Marco Profilo | Expert

Ciao,
scusa forse mi sono espresso male.

In MS Access riesco a settare durante la visualizzazione struttura di una tabella un campo "CodiceArticolo" di tipo testo e chiave primaria.
Ciò mi da l'opportunità tramite una maschera di inserire un codice articolo (es. PAL32X), questo codice articolo sarà univoco in tutta la tabella articoli.

Come si fa a creare una struttura come questa in SQL Server? sarà una fesseria ma nn riesco proprio.
Grazie

alx_81 Profilo | Guru

>Ciao,
ciao

>Come si fa a creare una struttura come questa in SQL Server?
>sarà una fesseria ma nn riesco proprio.
dimentica IDENTITA' (che è quello che ti ha illustrato Lorenzo) perchè a te non serve.
Quando progetti la tabella (Design) seleziona la colonna e poi premi la CHIAVE che trovi nella toolbar in alto sul management studio.
Come tipo di dati imposta varchar come ti serve. Nulla più..

>Grazie
di nulla!
--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

86Marco Profilo | Expert

ok perfetto.
La colonna identità quindi a che serve?

alx_81 Profilo | Guru

>ok perfetto.
>La colonna identità quindi a che serve?
come ti indicava Lorenzo è un attributo che puoi dare ad un campo numerico (coi indicati nei post precedenti) e che fa in modo che, per la colonna che lo usa (l'unica possibile, non puoi farne due), il valore autoincrementi ad ogni nuovo inserimento. Un classico contatore progressivo, che avanza di tante unità quanto definito nell'incremento. Si crea quindi specificando due parametri:

SEED
valore iniziale da cui si parte con la numerazione

INCREMENT
passo con cui il nuovo valore inserito deve distanziarsi dal precedente valore

per maggiori info qui:
http://msdn.microsoft.com/en-us/library/aa933196(SQL.80).aspx
--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

86Marco Profilo | Expert

Perfetto mille grazie! ;)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5