UPDATECambiare colonna di chiave primaria in SQL Server
Qui ci sono i vincoli come un risultato della query
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'history'
CONSTRAINT_NAME COLUMN_NAME ORDINAL_POSITION
PK_history userKey 1
PK_history name 2
Ecco il risultato della query
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE TABLE_NAME = 'history'
CONSTRAINT_NAME CONSTRAINT_TYPE IS_DEFERRABLE INITIALLY_DEFERRED
PK_history PRIMARY KEY NO NO
FINE UPDATE
Il mio host fornisce un'interfaccia al mio DB SQL Server tramite ASP.NET Enterprise Manager.
Ho 3 colonne in mia history
tavolo:
userId
(chiave, int, NULL non consentito)name
(chiave, stringhe, NULL non consentito)id
(non chiave, int, NULL consentito)
Voglio rendere la colonna ID l'unica chiave.
Per fare questo, credo che ho bisogno di:
- Assicurarsi che non vi siano NULL in quella colonna di qualsiasi riga
- Impostare la colonna non consente i null
- aggiungere la colonna come primarie chiave
- rimuovere gli altri 2 colonne come chiavi
Tuttavia, quando uso l'interfaccia utente fornita, non funziona mai. A volte sembra solo che cerchi di fare qualcosa, ma non cambia mai quando aggiorno la vista delle colonne. Di tanto in tanto crea una tabella temporanea che sembra provi a fare qualche operazione, ma che non viene mai copiata/sovrascritta la tabella originale che sto cercando di cambiare.
Quando si tenta di utilizzare una query, le modifiche non vengono visualizzate. Qui ci sono le domande Penso di aver bisogno:
SELECT * from history WHERE id is NULL <---- This shows 0 results
ALTER TABLE history
ALTER COLUMN id int NOT NULL
ALTER TABLE history ADD PRIMARY KEY (id)
ALTER TABLE history
DROP CONSTRAINT userId
DROP CONSTRAINT name
GO
ho ottenuto solo il tentativo di non consentire NULL e per aggiungere la chiave primaria per la colonna id. Non sembra funzionare. Qualcuno può indicarmi la giusta direzione? Grazie!
Viene visualizzato un messaggio di errore? –
è necessario eliminare prima i vincoli –
no, non ricevo alcun messaggio di errore con la query. Con l'interfaccia utente, ho ricevuto l'errore relativo all'impostazione della colonna id su una chiave quando consente i valori nulli, ma nessun errore quando si tenta di disabilitare i valori nulli. – ckbhodge