Update: I never found a solution to this, so I went about this in a different way. I now copy the searchable data to a another table (that references my first table) and added a full text index on that data. Works well.
I want to create a full text index on a schemabound view with multiple inner joins. So I've created a unique clustered index.
SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET NUMERIC_ROUNDABORT OFF
CREATE UNIQUE CLUSTERED INDEX [ClusteredIndex_OnID] ON [dbo].[MyView]
(
[ID] ASC,
[OtherTableID] ASC,
[YetAnotherTableID] ASC,
[SomeTableID] ASC
)
I have to create a combined index because I've got one-to-many references. But when I try to create the full text index I get the infamous "A unique column must be defined on this table/view." error message.
Why? Is there a way around this?
The view:
CREATE VIEW [dbo].[TransportView]
WITH SCHEMABINDING
AS
SELECT t.ID, t.BookingNr, t.CreatedBy, t.UpdatedBy, t.UpdatedByToken, t.EjerVirksomhed, t.InteressentVirksomhed, t.KundeVirksomhed, t.Disponent, t.Tilstand, t.FragtbrevNummer, t.ExternalBookingId, t.BookingDato,
t.ModtagerTelefonnummer, t.ConvertedTime, t.OprettetFraFragtbrev, t.FragtbrevMangler, t.IsSynchronized, t.Tag, t.BestillerTelefonnummer, t.AfsenderReference, t.Reference1, t.Reference2, t.Reference3,
t.Reference4, t.FragtBetaler, t.Mandag, t.Tirsdag, t.Onsdag, t.Torsdag, t.Fredag, t.BookingNummer, t.Fragtbrevsnumre, t.Created, t.Updated, t.LastUsedAsStaaende, t.TransportStatus, t.Oprindelsessted,
t.FragtbrevForAlle, t.Frankatur, t.GeoLookupDone, t.Modtagerkundenummer, t.Natlevering, t.Returgods, t.BookingImporttype, t.ServiceKode, t.SkjultForDisponenter, t.IsKurer, t.Tags, t.StatusReplyQueue,
t.ModtagerÅbningstid, t.LaesseBemaerkning, t.BookingContentVersion, t.BookingVersion, t.BookingOpdateret, t.TransportType, t.OprindeligTransportType, t.MasterBookingNummer, t.Fragtbrevstype,
t.Bestillerkundenummer, t.Partigods, t.LossesIHal, t.PartigodsFraFC1, t.EjendeVirksomhed, t.DisponerendeVirksomhed, t.HijackedBy, t.HijackedTimestamp, t.BestillerFirmaNavn, t.BestillerAdresse,
t.BestillerStednavn, t.BestillerPostnummer, t.BestillerBy, t.BestillerLand, t.BestillerFirmaTelefon, t.BestillerKontaktNavn, t.BestillerKontaktTelefon, t.BestillerKontaktEmail, t.BestillerKOBNr, t.BestillerRef1,
t.BestillerLat, t.BestillerLon, t.BestillerLatLonPrecision, t.BestillerAdresseHashCode, t.AfhentningFirmaNavn, t.AfhentningFirmaNavn2, t.AfhentningAdresse, t.AfhentningStednavn, t.AfhentningPostnummer,
t.AfhentningBy, t.AfhentningLand, t.AfhentningFirmaTelefon, t.AfhentningKontaktNavn, t.AfhentningKontaktTelefon, t.AfhentningKontaktEmail, t.AfhentningBemaerkning, t.AfhentningBemaerkning2,
t.AfhentningLoadPoint, t.AfhentningLat, t.AfhentningLon, t.AfhentningLatLonPrecision, t.AfhentningAdresseHashCode, t.ModtagerFirmaNavn, t.ModtagerFirmaNavn2, t.ModtagerAdresse, t.ModtagerStednavn,
t.ModtagerPostnummer, t.ModtagerBy, t.ModtagerLand, t.ModtagerFirmaTelefon, t.ModtagerKontaktNavn, t.ModtagerKontaktTelefon, t.ModtagerKontaktEmail, t.ModtagerBemaerkning, t.ModtagerBemaerkning2,
t.ModtagerUnloadPoint, t.ModtagerLat, t.ModtagerLon, t.ModtagerLatLonPrecision, t.ModtagerAdresseHashCode, t.ModtagerAabningstid, t.ModtagerLukketid, t.AfsenderNavn, t.AfsenderNavn2, t.AfsenderAdresse,
t.AfsenderAdresse2, t.AfsenderPostnummer, t.AfsenderBy, t.AfsenderLand, t.AfsenderTelefon, t.AfsenderEmail, t.AfsenderKundenummer, t.AfsenderKontaktperson, t.TransportDataBemaerkning,
t.TransportDataBemaerkning2, t.TransportDataFragtbrevsBemaerkning, t.TransportDataTotalPallepladser, t.TransportDataTotalLadMeter, t.TransportDataFM1Rute, t.TransportDataFM2Rute, t.TransportDataFC1,
t.TransportDataFC1Navn, t.TransportDataFC2, t.TransportDataFC2Navn, t.TransportDataByttepaller, t.TransportDataHelpaller, t.TransportDataHalvpaller, t.TransportDataKvartpaller,
t.TransportDataForsendelsestype, t.TransportDataTvungenColliscanning, t.TransportDataEfterkravBeloeb, t.TransportDataEfterkravValuta, t.TransportDataEfterkravKontant, t.TransportDataForsikringType,
t.TransportDataForsikringBeloeb, t.TransportDataForsikringValuta, t.TransportDataMaerkeNr, ben.TransportBenId, ben.BookingNrB, ben.FragtbrevnummerB, ben.BookingDatoB, ben.TurNr, ben.UpdatedTime,
ben.UpdatedByB, ben.TransportBenNummer, ben.Type, ben.ExternalBookingIdB, ben.CreatedB, ben.TilstandB, ben.Label, ben.LaesseZone, ben.Status, ben.StatusText, ben.Chauffoer, ben.Tur, ben.SendtTilPda,
ben.TidsAfhentning, ben.Tidslevering, ben.Lat, ben.Lon, ben.Sampletime, ben.DelafhentningAfhentet, ben.DelafhentningRest, ben.TidsLeveringTidligstDato, ben.TidsLeveringTidligstTid,
ben.TidsLeveringSenestDato, ben.TidsLeveringSenestTid, ben.ETARequired, ben.AdviceOnETA, ben.SMSAdvisering, ben.EMailAdvisering, ben.Rute, ben.Fragtcentralkode, ben.PictureCount, ben.AfhSenestDato,
ben.AfhSenestTID, ben.AfhTidligstDato, ben.AfhTidligstTID, ben.TransportSortOrder, ben.Materielnummer, ben.MaterielType, ben.EksterntMateriel, ben.UpdatedB, ben.Afhentningstid, ben.Klartid, ben.Lukketid,
ben.OprindeligKlartid, ben.OprindeligLukketid, ben.LeveringDato, ben.LeveringKlartid, ben.LeveringLukketid, ben.OprindeligLeveringDato, ben.OprindeligLeveringKlartid, ben.OprindeligLeveringLukketid,
ben.BookingDato_ForSearch, ben.SavedHash, ben.FaktiskLeveringDato, ben.FaktiskLeveringTid, ben.OprindeligMaterielnummer, ben.OprindeligEksterntMateriel, ben.TildeltUdkoerendeAnsvarlig,
ben.Placeringsbeskrivelse, ben.ExcludeFromBundles, ben.IsInBundle, ben.BundleGuid, ben.DesignatedList, ben.Videresendt, ben.SliptidCountDownStarted, ben.SliptidElapsedSeconds, ben.HasBounced,
ben.SliptidUdloeber, ben.SliptidEnabled, ben.EjendeVirksomhedB, ben.DisponerendeVirksomhedB, ben.OprindeligDisponerendeVirksomhed, ben.InteressentVirksomhedB, ben.KundeVirksomhedB,
ben.DisponentB, ben.DisponentName, god.TransportGodsId, god.BookingNrG, god.Antal, god.Art, god.Indhold, god.Vaegt, god.Rumfang, god.Ladmeter, god.Laengde, god.Bredde, god.Hoejde, god.Stabelbar,
god.MarkAndNumber, [var].TransportGodsVarelinjeId, [var].V_GodsId, [var].IndholdGv, [var].AntalGv, [var].VaegtGv, [var].LBH, [var].Ekstra
FROM dbo.Transport AS t INNER JOIN
dbo.TransportBen AS ben ON t.BookingNr = ben.BookingNrB INNER JOIN
dbo.TransportGods AS god ON t.BookingNr = god.BookingNrG INNER JOIN
dbo.TransportGodsVarelinje AS [var] ON god.TransportGodsId = [var].V_GodsId