2017-08-02 2 views
0

J'ai un problème complexe avec la base de données sql server, si quelqu'un pouvait m'aider, ce serait génial.Msg 30007, Niveau 16 dm_fts_index_keywords, dm_fts_index_keywords_by_document, dm_fts_index_keywords_by_property

Dans mon serveur SQL 2014 Express, je crée une base de données simple avec 3 tables:

  • "DocumentFile", "DocumentSearchTerm", "searchTerm" et un catalogue de recherche en texte intégral FTCat dont 3 colonnes du " DocumentFile » Table (ExtractText, FileNameWithoutExtension, FilePath)

et j'ai aussi créé [Recherche] procédure de magasin (et fonctions sQL supplémentaires) pour effectuer le catalogue de recherche complète. (je partage ma sauvegarde de base de données SQL Server: https://1drv.ms/u/s!AlUHN_KmzBqksIs9ylWc5eKBvF1Tgg afin de tester)

Quand je cours sur mon serveur SQL Express ce script suivant local:

DECLARE @return_value int, 
     @TotalRecords int 

EXEC @return_value = [dbo].[Search] 
     @SearchTerm = N'c++', 
     @CurrentPage = 1, 
     @PageSize = 20, 
     @TotalRecords = @TotalRecords OUTPUT 

SELECT @TotalRecords as N'@TotalRecords' 

SELECT 'Return Value' = @return_value 

Il fonctionne bien et il me retunrs 2 lignes.

Maintenant, mon problème est que j'ai souscrit un plan d'hébergement smarterasp.net, y compris une base de données sql server 2016 avec un catalogue de recherche complet.

J'ai donc restauré la sauvegarde sur ma base de données hébergée (elle a fonctionné avec succès), toutes les tables, procédures stockées, fonctions et mon catalogue de texte de recherche complète ont été créés avec succès.

Mais maintenant, quand j'exécute le même script:

DECLARE @return_value int, 
     @TotalRecords int 

EXEC @return_value = [dbo].[Search] 
     @SearchTerm = N'c++', 
     @CurrentPage = 1, 
     @PageSize = 20, 
     @TotalRecords = @TotalRecords OUTPUT 

SELECT @TotalRecords as N'@TotalRecords' 

SELECT 'Return Value' = @return_value 

Il falied avec l'erreur suivante message:

Msg 30007, niveau 16, état 1, ligne 20 Paramètres de dm_fts_index_keywords, dm_fts_index_keywords_by_document, dm_fts_index_keywords_by_property et dm_fts_index_keywords_position_by_document ne peut pas être nul.

Est-ce que quelqu'un a rencontré ce problème?

Répondre

0

Sql serveur lancer une erreur et pour moi ce n'est pas normal, il doit juste retourner null.

Je vous expliquer quel était le problème:

dans ma procédure stockée [GetMainTags], i Ecrite le nom du dabase hardcoded (l'ancien nom de mon serveur SQL local):

DECLARE @db_id int = db_id (N'semanticsdb ');

Donc, c'est faux. Dans ma nouvelle base de données, je dois écrire:

DECLARE @db_id int = db_id (N'my_new_database_name ');

et être plus générique je dois le faire pour la base de données actuelle qui exécute la fonction:

@DbName varchar déclare (100); SELECT @dbName = DB_NAME(); DECLARE @db_id int = id_bd (@dbName);