【问题标题】:Full text index on view with combined unique index具有组合唯一索引的视图全文索引
【发布时间】:2014-10-01 22:17:15
【问题描述】:

更新:我从来没有找到解决方案,所以我以不同的方式解决了这个问题。我现在将可搜索数据复制到另一个表(引用我的第一个表)并在该数据上添加了全文索引。效果很好。


我想在具有多个内部连接的架构绑定视图上创建全文索引。所以我创建了一个唯一的聚集索引。

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
)

我必须创建一个组合索引,因为我有一对多的引用。 但是当我尝试创建全文索引时,我得到了臭名昭著的“必须在此表/视图上定义唯一列”。错误信息。

为什么?有没有办法解决这个问题?

观点:

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

【问题讨论】:

    标签: sql search view indexing full-text-search


    【解决方案1】:

    您需要为您的 VIEW 创建主键或唯一索引。

    如果您想在表或视图上创建全文搜索,它必须具有唯一的、单列、不可为空的索引。

    这就是您收到错误的原因。

    我强烈建议您观看有关索引视图的视频 Very Good Video on Indexed views

    请检查以下链接。 这个链接肯定会帮助你。 Detailed Full Text Information

    【讨论】:

    • 这就是我所做的。上面的代码在我的视图上创建了一个索引。除了它不是单列。我没有找到任何说明它必须是单列的文档。
    • 请分享您创建的视图,因为创建索引需要遵循许多规则。如果您想查看所有规则,可以参考此链接msdn.microsoft.com/en-IN/library/ms191432.aspx
    • 如果可能,请分享您创建的视图
    • 我已经添加了视图。有点大,但没什么花哨的。
    • @pow 我检查了你的观点。真的没问题啊
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多