2016-04-17 4 views
1

Ich weiß, es ist am besten, zu dem Punkt zu kommen, wenn ich hier eine Frage stelle, aber wenn ich nicht die volle Situation erkläre, würde jemand mehr als wahrscheinlich fragen, warum ich bin in diesem Dilemma (das ich eigentlich erst ab dem dritten Absatz mit fettem Text beginne), und in diesem Fall hätte ich es sowieso erklären müssen, also habe ich beschlossen, das von Anfang an aus dem Weg zu räumen.Sql Abfrage für Volltext auf einer Spalte

Früher hatte ich einen besseren Laptop, aber meine Brüder Frettchen verschütteten Wasser darauf. Also, seit einem Jahr benutze ich einen älteren Laptop. Es funktioniert und ist einigermaßen schnell genug. Aber es kam mit Windows 7, ich habe Windows 8, 8.1 und jetzt 10 darauf installiert. Während der ganzen Zeit, in der ich diese Maschine hatte (und ja, vorher auch), habe ich Computerprogrammieren als Hobby gemacht und bin ziemlich anständig geworden. Aber ich habe Visual Studio 2010, 2012, 2013 und 2015 darauf installiert (und habe immer noch all diese Ergänzungen installiert, weil ich einmal ein älteres Visual Studio bei der Installation eines neuen Visual Studio deinstalliert habe - Die Installation des alten Visual Studio hat irgendwie etwas mit dem neuen Visual Studio gemacht und es unbrauchbar gemacht, was mich gezwungen hat, Windows neu zu installieren und von vorne anzufangen, und eine Neuinstallation von Windows auf diesem Rechner wäre eine schreckliche Entscheidung für mich, weil ich auch Musik produziere als On-Off-Off-Wieder-Hobby, und es hat eine Bibliothek von sehr wichtigen Plugins für die Musikproduktion, die ich nicht verlieren will - unter anderem).

Aber das Problem im Kern meiner Frage ist das - Ich habe mehrere Editionen von SQL Server auf diesem Rechner installiert - 2008, 2008 R2, 2012 und 2014. Nachdem dies getan wurde, schuf es ein seltsames Szenario . In Visual Studio 2015 kann ich problemlos SQL-Datenbanken erstellen und bearbeiten. Aber wie wohl jeder, der etwas über Microsoft SQL Server weiß, weiß, gibt es einige Funktionen zur Datenbankmanipulation, sogar in Visual Studio 2015 (mit seinen fortgeschritteneren Manipulationsmöglichkeiten als in früheren Editionen), die einfach nicht gemacht werden können und die einzige Möglichkeit ist Solche Dinge sind in SQL Server Management Studio enthalten. Nun, da ich mehrere Versionen von SQL Server während der Lebensdauer dieses Rechners über mehrere Editionen von Windows installiert habe, ist etwas ziemlich Seltsames passiert. Jedes Mal, wenn ich SQL Server installierte, installierte ich Advanced Services (mit aktivierter Volltextsuche). OK, also, wenn ich SQL Server Management Studio 2014 - gehe, wird es sich einfach nicht in mein Datenbanksystem einloggen und gibt mir eine Fehlermeldung, die (ua) sagt: "Ein Netzwerk bezogen oder Instanz- Beim Herstellen einer Verbindung zu SQL Server ist ein spezifischer Fehler aufgetreten Der Server wurde nicht gefunden oder war nicht erreichbar "Nun, der Punkt ist, ich habe Datenbanken zu verschiedenen Projekten erstellt, und ich integrierte Full-Text-Dienste auf einem (oder einige ...) Spalten in einer Tabelle vor. Ich verstehe T-SQL und kann es schreiben, aber ich bin nicht besonders versiert darin. Also, wenn ich Full-Text-Dienste eingerichtet habe, wie ich auf früheren Datenbanken sagte - es wurde (offensichtlich) innerhalb von SQL Server Management Studio getan.

So die Hauptsache ist - Ich habe eine Tabelle, die ich Volltextdienste auf einer bestimmten Spalte in dieser Datenbank einstellen möchte ich gemacht. Nach diesem Absatz schrieb ich ein Beispiel create table script, und ich markiere die Spalte, auf die Full-Text-Dienste angewendet werden sollen, bitte kann mir jemand zeigen, wie man das richtig macht.

CREATE TABLE [dbo].[thisTable] (
    [Id] INT    IDENTITY (1, 1) NOT NULL, 
    [aColumn] DATETIME  NOT NULL, 
    [INEEDFULLTEXTHERE] NVARCHAR (100) NOT NULL <<< the column I need full-text on 
) 

Antwort

0

Volltextsuche aktivieren und diesen Katalog auf dem Tisch Verwendung erstellen:

use MyDB 
go 

--Enable Full-text search on the DB 
if (select DATABASEPROPERTY(DB_NAME(), N'IsFullTextEnabled')) <> 1 
exec sp_fulltext_database N'enable' 
GO 

--Create a full-text catalog 
if not exists (select * from dbo.sysfulltextcatalogs where name = N'CatalogName') 
exec sp_fulltext_catalog N'CatalogName', N'create' 
GO 

exec sp_fulltext_table N'[dbo].[thisTable] ', N'create', N'CatalogName', N'IndexName' -- Id column in your examle 
GO 

--Add a column to catalog 
exec sp_fulltext_column N'[dbo].[thisTable] ', N'INEEDFULLTEXTHERE', N'add', 0 /* neutral */ 
GO 

--Activate full-text for table 
exec sp_fulltext_table N'[dbo].[thisTable] ', N'activate' 
GO 

--Full-text index update 
exec sp_fulltext_catalog 'CatalogName', 'start_full' 
GO 
+0

Ich kann sehen, Ihre Abfrage ist definitiv auf Ziel. Ok, nun, ich habe jetzt ein anderes Problem (das ich mir die Daumen verschränkt habe, hoffe nicht passieren würde (ich vermutete es vielleicht ...)) - Visual Studio meldet einen Fehler - nicht in der Abfrage, aber - "Kann nicht verwenden Volltextsuche in Benutzerinstanz. " Also, ja, ich denke, der Kontext von Visual Studio befindet sich im Kontext der Benutzerinstanz, und daher kann Visual Studio diesen Befehlstyp nicht ausführen. Also, ich habe eine andere Frage, zu sehen, wie ich nicht SQL Server Management Studio verwenden kann, (Fortsetzung nächsten Kommentar ...) – AspCoder

+0

Ich erinnere mich, dass Redgate hat einige Anwendungen, die in der Lage, einige mächtige Dinge tun. Gibt es eine Redgate-Anwendung, die dies erreichen könnte? – AspCoder

+0

Hm ... bitte überprüfen Sie dies: https://stackoverflow.com/questions/10845385/sql-error-cannot-use-full-text-search-in-user-instance die Antwort. Wird der Volltext-Dienst ausgeführt? Hast du eine Erlaubnis? usw. Entschuldigung, ich habe Redgate-Produkte noch nie benutzt, ich kann Ihnen in diesem Teil nicht helfen :( – gofr1

1

entschied ich mich gofr1 Antwort als Antwort auf diese Frage aus Respekt vor der Tatsache zu wählen, dass er kam, hier und gab einen großen Schuss auf die Antwort, und ich denke, seine Antwort ist sicherlich funktionieren, wenn sie richtig angewendet wird.Leider, wie gesagt, obwohl ich etwas T-SQL-Kenntnisse habe - es ist nicht so gut abgerundet, wie ich es mir wünsche, und ich habe versucht, seine Antwort anzuwenden, hatte aber Probleme, aber ich bin mir ziemlich sicher, wenn ich ein bisschen wüsste ein bisschen mehr Kenntnisse von T-SQL, ich hätte es ein wenig zwicken können, damit es perfekt funktioniert. Aber ich denke, es ist ein guter Bezugspunkt und bietet eine wertvolle Perspektive.

Allerdings sollte ich eine gründlichere Suche nach Antworten auf ein solches Rätsel getan haben, bevor überhaupt die Frage gestellt wurde, aber ich denke, ich stellte diese Frage offenbarten Gofr1 Methode - und ich denke, die detaillierteren Ressourcen zu solchen Fragen - Je besser. Aber nachdem ich mich eingehender mit der Sache beschäftigt hatte, stieß ich auf die Stackoverflow-Frage, die mir die Methode gab, dies zu tun, die tatsächlich für mich funktionierte, ohne viel zu tun, und etwas einfacher war, und diese Frage kann gefunden werden unter - Express with Advanced Services, can't create Full Text Index

Vielen Dank noch einmal gofr1, ich bin sicher, Ihre Antwort wird nützlich sein, um einige Leute da draußen.

+0

Mein Vergnügen! Und viel Glück! – gofr1

+0

Ja, danke. – AspCoder