Sai*_*ash -1 sql-server alter non-clustered-index
我有一个记录数量巨大的表。某些列上定义了非聚集索引。
我们需要更改/删除一些定义了此类索引的列。
我直接更改/删除了列,但没有收到任何错误,例如:
Alter statement failed。它成功了。所以,我的问题是:
是否需要删除要删除/更改的列上的非聚集索引?
why it did give any errors similar to case of constraints/keys defined on them ?
Run Code Online (Sandbox Code Playgroud)
更新 :
What incase of alteting a column for its size ? Is it supposed to throw any error ?
Run Code Online (Sandbox Code Playgroud)
你的问题的措辞对我来说有点奇怪,我很难完全理解你的要求……但这很容易测试你自己。
您无法删除具有索引的列,请参阅:
CREATE TABLE tempThing (id int IDENTITY(1,1) PRIMARY key, someValue varchar(50))
GO
CREATE INDEX idxTemp ON dbo.tempThing (someValue)
GO
Run Code Online (Sandbox Code Playgroud)
然后:
ALTER TABLE dbo.tempThing DROP COLUMN someValue
Run Code Online (Sandbox Code Playgroud)
给出错误:
消息 5074,级别 16,状态 1,第 1 行 索引“idxTemp”依赖于列“someValue”。消息 4922,级别 16,状态 9,第 1 行 ALTER TABLE DROP COLUMN someValue 失败,因为一个或多个对象访问此列。
| 归档时间: |
|
| 查看次数: |
842 次 |
| 最近记录: |