2009-06-23 2 views
14

Ich überarbeite eine alte Datenbank und entferne Spalten, die nicht mehr verwendet werden. Die DB hatte früher Volltextindizierung, daher sind einige Spalten für den Volltext markiert.Fehler: Die Spalte 'x' kann nicht geändert oder gelöscht werden, da sie für die Volltextsuche aktiviert ist.

Wie kann ich sie entfernen?

Hinweise:

  • DB ist MS SQL Server Express 2008
  • Volltext-Suchdienst wird nicht mehr
  • installiert

Edit:
ich versucht habe

ALTER FULLTEXT INDEX ON tableName DROP (ColumnName) 

Aber wird diese Fehlermeldung:

Full-text crawl manager has not been initialized. Any crawl started before 
the crawl manager was fully initialized will need to be restarted. Please 
restart SQL Server and retry the command. You should also check the error 
log to fix any failures that might have caused the crawl manager to fail. 

Antwort

27

die Lösung selbst gefunden:

-- You should call the DISABLE command 
ALTER FULLTEXT INDEX ON TableName DISABLE 
ALTER FULLTEXT INDEX ON TableName DROP (ColumnName) 
ALTER TABLE TableName DROP COLUMN ColumnName 
+0

beachten Sie auch, dass Sie wirklich das enthalten muss (und) in Zeile 2, oder einen Syntaxfehler –

+2

erhalten und den Index erneut hinzufügen, wenn Sie gerade ändern die Spalte: ALTER FULLTEXT INDEX ON Tabellenname add (ColumnName) ALTER FULLTEXT INDEX ON TableName enable – David

7

Ich weiß, dass dies eine alte Post ist, habe ich hochnäsig, wo ich eher eine Spalte in der Tabelle zu ändern, hatte als drop.below Code arbeitete für mich ...

EXEC sp_fulltext_column  //Drop your column from full text search here 
@tabname = '<table_name>' , 
@colname = '<column_name>' , 
@action = 'drop' 

ALTER TABLE ... //Alter your column here 

EXEC sp_fulltext_column  //Add your column back to full text search 
@tabname = '<table_name>' , 
@colname = '<column_name>' , 
@action = 'add' 
Verwandte Themen