2009-10-30 34 views
0

我有一個表阿爾特柱下降指數

CREATE TABLE table1(
[classe] [char](30) NOT NULL, 
[code] [char](30) NOT NULL, 
[description] [varchar](255) NULL, 
[codelangue] [char](2) NULL 
) ON [PRIMARY] 

與指數

CREATE NONCLUSTERED INDEX [table1_id1] ON [dbo].[table1] 
(
[codelangue] ASC, 
[classe] ASC, 
[code] ASC 
) 
INCLUDE ([description]) WITH (PAD_INDEX = OFF, 
STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, 
IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, 
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 

當我做

ALTER TABLE table1 
ALTER COLUMN codelangue [char](2) NOT NULL 

則丟棄該指數及相關的statistique。

任何想法爲什麼?

回答

0
ALTER TABLE table 

我認爲這應該是「table1」,而不是「表」?

在我安裝的SQL Server 2005,該代碼生成錯誤:

Msg 5074, Level 16, State 1, Line 1 
The index 'table1_id1' is dependent on column 'codelangue'. 
Msg 4922, Level 16, State 9, Line 1 
ALTER TABLE ALTER COLUMN codelangue failed because one or 
more objects access this column. 
+1

的任何版本執行如果重新PAS在NULL列索引和,然後我重新嘗試它傳遞NOT NULL我得到相同錯誤...但不是第一次,我不明白爲什麼...... – Roxana 2009-10-30 10:23:35

+0

燁,同樣在這裏 - 我不能執行該語句來改變表的列 – 2009-10-30 10:24:53

0

不同的表(例如bob.table1不dbo.table1)或不同的數據庫。

的ALTER 不會上的SQL Server我熟悉