2009-06-23 12 views
14

Estoy refabricando una base de datos anterior y eliminando las columnas que ya no están en uso. La base de datos solía tener indización de texto completo, por lo tanto, algunas columnas están marcadas para texto completo.Error: No se puede modificar o eliminar la columna 'x' porque está habilitada para la búsqueda de texto completo

¿Cómo puedo eliminarlos?

Notas:

  • DB es MS SQL Server Express 2008
  • servicio de búsqueda de texto completo ya no se instala

Editar:
He tratado

ALTER FULLTEXT INDEX ON tableName DROP (ColumnName) 

pero obtiene este error:

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. 

Respuesta

27

encontrado la solución a mí mismo:

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

también tenga en cuenta que realmente debe incluir el (y) en la línea 2, o conseguir un error de sintaxis –

+2

y para volver a agregar el índice si sólo está alterando la columna: ALTER FULLTEXT INDICE ON TableName add (ColumnName) ALTER FULLTEXT INDICE ACTIVADO TableName enable – David

7

Sé que esto es una entrada antigua, me quedé atrapado arriba, donde tenía que alterar una columna de la tabla en lugar de código drop.below funcionó para mí ...

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' 
Cuestiones relacionadas