我有一个包含INT IDENTITY
列和VARCHAR(10)
列的表。我想在UNIQUE CLUSTERED INDEX
列上有一个IDENTITY
(因此它是主键),并且我还想有一种方法来防止VARCHAR(10)
列中的重复值。但是,数据应该在IDENTITY
列中按升序排序。
例如:
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');
(正如我所教的那样,我创建的是UNIQUE CLUSTERED INDEX
而不是PRIMARY KEY
,但是我不完全理解为什么选择一个而不是另一个的原因。从那时起,我一直坚持)
我应该向该表添加哪种类型的索引,以防止将重复的值添加到currency_name
列,而不会会影响数据的顺序?
我尝试添加UNQIUE NONCLUSTERED INDEX
,但是这导致数据被currency_name
排序,这是我不希望的。