4
时,请参见下面的DDL:错误减少VARCHAR长度
CREATE TABLE Person
(
ID int identity not null,
Name VARCHAR(100),
Age int,
EyeColour varchar(20),
primary key (ID)
)
CREATE INDEX Name ON Person (Name)
CREATE INDEX Age ON Person (Age)
CREATE INDEX EyeColour ON Person (EyeColour)
我可以执行以下语句:
ALTER TABLE person
ALTER COLUMN name VARCHAR(110)
但是,我不能执行以下语句:
ALTER TABLE person
ALTER COLUMN name VARCHAR(90)
错误是:
消息5074,级别16,状态1,行1
索引'名称'依赖于'名称'列。消息4922,级别16,状态9,行1
ALTER TABLE ALTER COLUMN名称失败,因为一个或多个对象访问此列。
为什么我在减少VARCHAR
的长度时看到这些错误。在其他情况下,我会看到这个错误,例如改变数据类型?
是否有一种自动方式来识别受数据类型变化影响并处理它们的所有索引和约束?
你真的需要索引所有三个领域,还是只是一个简单的例子? – HardCode
删除索引,修改表格,创建索引...赚取利润。 – Hackerman
@HardCode,是的,它是简化的,所以我可以得到我的观点。 – w0051977