Aggiornare il database da SQL Server 2000 a 2005 e ricostruire gli indici full-text?
-
09-06-2019 - |
Domanda
Sto caricando un SQLServer2000 database nel mio nuovo SQLServer2005 esempio. Come previsto, i cataloghi full-text non vengono forniti con esso. Come posso ricostruirli?
Facendo clic con il pulsante destro del mouse sui miei cataloghi di testo completo e premendo "ricostruire gli indici" resta sospeso per ore e ore senza fare nulla, quindi non sembra essere così semplice...
Soluzione
Provalo usando SQL.
Ecco un esempio da Microsoft.
--Change to accent insensitive
USE AdventureWorks;
GO
ALTER FULLTEXT CATALOG ftCatalog
REBUILD WITH ACCENT_SENSITIVITY=OFF;
GO
-- Check Accentsensitivity
SELECT FULLTEXTCATALOGPROPERTY('ftCatalog', 'accentsensitivity');
GO
--Returned 0, which means the catalog is not accent sensitive.
Altri suggerimenti
Grazie, questo mi ha aiutato perché mostrava cosa c'era che non andava:I percorsi dei miei file erano diversi.Ecco come l'ho risolto:
1) Caricare il database dal backup SQL 2000
2) Imposta la modalità compatibilità su SQL 2005
USE mydb
GO
ALTER DATABASE mydb SET COMPATIBILITY_LEVEL = 90
GO
3) Ottieni i nomi dei filegroup
SELECT name
FROM sys.master_files mf
WHERE type = 4
AND EXISTS( SELECT *
FROM sys.databases db
WHERE db.database_id = mf.database_id
AND name = 'mydb')
4) Quindi per ogni nome (l'ho fatto in un piccolo script)
ALTER DATABASE mydb
MODIFY FILE( NAME = {full text catalog name}, FILENAME="N:\ew\path\to\wherever")
5) Raccogliere poi tutti i nomi “leggibili” dei cataloghi:
SELECT name FROM sys.sysfulltextcatalogs
6) Infine, ora puoi ricostruirli ciascuno:
ALTER FULLTEXT CATALOG {full text catalog name} REBUILD