I have a table containing an INT IDENTITY
column, and a VARCHAR(10)
column. I want to have a UNIQUE CLUSTERED INDEX
on the IDENTITY
column (so it's a primary key), and I also want to have a way of preventing duplicate values in the VARCHAR(10)
column. However, the data should be ordered by the IDENTITY
column in ascending order.
For example:
CREATE TABLE ref.currency (
currency_id INT NOT NULL IDENTITY(1,1),
currency_name VARCHAR(10) NOT NULL
);
GO
CREATE UNIQUE CLUSTERED INDEX ix_ref_currency_id ON ref.currency(currency_id);
GO
INSERT INTO ref.currency (
currency_name
)
VALUES
('Pounds'),
('Euros'),
('Dollars');
(I create a UNIQUE CLUSTERED INDEX
instead of a PRIMARY KEY
, as I was taught this, but didnt fully understand the reasons why one should be chosen over the other. I've stuck with it ever since.)
Question:
What type of index should I add to this table in order to prevent duplicate values being added to the currency_name
column, that will not affect the order of the data?
I've tried adding a UNQIUE NONCLUSTERED INDEX
, however this results in the data being ordered by currency_name
, which I do not want.