2009-06-23 8 views
14

Sto rifattorizzando un vecchio database e rimuovendo le colonne non più in uso. Il DB aveva l'indicizzazione completa del testo, quindi alcune colonne sono contrassegnate per il testo completo.Errore: impossibile modificare o eliminare la colonna 'x' perché è abilitata per la ricerca full-text

Come posso rimuoverli?

Note:

  • DB è MS SQL Server Express 2008
  • Testo integrale servizio di ricerca non è più installato

Edit:
ho cercato

ALTER FULLTEXT INDEX ON tableName DROP (ColumnName) 

ma ottiene questo errore:

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. 

risposta

27

trovato la soluzione io stesso:

-- 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

anche notare che è davvero necessario includere la (e) in linea 2, o ottenere un errore di sintassi –

+2

e per aggiungere nuovamente l'indice se stai solo alterando la colonna: ALTER INDICE FULLTEXT ON TableName add (ColumnName) ALTER INDICE FULLTEXT ON Abilita TableName – David

7

So che questo è un vecchio post, mi sono bloccato su, dove ho avuto per modificare una colonna della tabella, piuttosto che codice drop.below ha funzionato per me ...

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' 
Problemi correlati