在SQL Server中查询varbinary列

时间:2015-03-22 10:46:35

标签: sql-server tsql

我在使用varbinary谓词查询contains列时遇到一些问题(它仅适用于nvarchar/varchar但在msdn文档中指定它适用于image/varbinary还)

我有这张桌子

[dbo].[Documents]
(
    [id] [int] IDENTITY(1,1) NOT NULL,
    [title] [nvarchar](100) NOT NULL,
    [doctype] [nchar](4) NOT NULL,
    [docexcerpt] [nvarchar](1000) NOT NULL,
    [doccontent] [varbinary](max) NOT NULL,

    CONSTRAINT [PK_Documents] 
      PRIMARY KEY CLUSTERED ([id] ASC)
)
  • doctype - 文档类型(格式)
  • docexcerpt - 文档的小片段
  • doccontent - 存储在varbinary中的整个文档

代码:

INSERT INTO dbo.Documents (title, doctype, docexcerpt, doccontent)
   SELECT 
      N'Columnstore Indices and Batch Processing',
      N'docx',
      N'You should use a columnstore index on your fact tables, putting all columns of a fact table in a columnstore index. In addition to fact tables, very large dimensions could benefit from columnstore indices as well. Do not use columnstore indices for small dimensions. ',
      bulkcolumn
   FROM 
      OPENROWSET(BULK 'myUrl', SINGLE_BLOB) AS doc;

现在这就是它的样子:

enter image description here

我已经安装了Microsoft Office 2010 Filter Pack并在SQL Server中注册了它们,并使用

检查我是否需要安装(.docx
SELECT document_type, path
FROM sys.fulltext_document_types;

这是输出

enter image description here

我的问题是这个查询没有返回任何内容:

enter image description here

作为观察,我使用以下代码在我的表上创建了一个全文目录和索引,同时使docexcerptdoccontent索引列成为

--fulltext index
CREATE FULLTEXT INDEX ON dbo.Documents
(
    docexcerpt Language 1033,
    doccontent TYPE COLUMN doctype Language 1033
    STATISTICAL_SEMANTICS
)
KEY INDEX PK_Documents
ON DocumentsFtCatalog
WITH STOPLIST = SQLStopList,
SEARCH PROPERTY LIST = WordSearchPropertyList,
CHANGE_TRACKING AUTO;

我不确定我做错了什么/失踪了。我很感激任何帮助。感谢

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题。这个错误......好吧......我忘记了为了让我的查询正常工作,我必须将我的文档重新插入表格(编辑后)。不能相信我已经麻木了。