首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server VARCHAR不工作的Varbinary -> VARCHAR

Server VARCHAR不工作的Varbinary -> VARCHAR
EN

Stack Overflow用户
提问于 2020-03-09 13:02:34
回答 1查看 305关注 0票数 1

嘿,我的解决方案有几个问题,我想不出来

下面是我的创建表

代码语言:javascript
复制
    CREATE TABLE FreeTextSearch
(
    [ID] BIGINT NOT NULL IDENTITY(1,1),
    [Content] VARBINARY(MAX) NOT NULL,
    [SubjectClass] VARCHAR(30) NOT NULL,
    [SubjectID] VARCHAR(30) NOT NULL,
    [ColumnName] VARCHAR(128) NOT NULL,
    CONSTRAINT PK_FreeTextSearch PRIMARY KEY (ID)
);


ALTER TABLE FreeTextSearch
Add FileExtension As '.html';

CREATE INDEX FreeTextSearch_SubjectClass
ON FreeTextSearch ([SubjectClass]); 


CREATE FULLTEXT CATALOG [freetext_catalog]


CREATE FULLTEXT INDEX ON FreeTextSearch
(
    [Content] TYPE COLUMN FileExtension
)
    KEY INDEX PK_FreeTextSearch ON freetext_catalog;

这将创建一个FreeTextSearch表,其中FileExtension为HTML等等。

我已经基于触发器将数据转换为VARBINARY自动插入到表中,但是现在有两个问题

内容如下:

代码语言:javascript
复制
<p>Test note for free text bla!</p>

将不会被查询检测到,如

代码语言:javascript
复制
    SELECT
    Id,
    CONVERT(VARCHAR(MAX), [Content]) AS [Content]
FROM dbo.FreeTextSearch
WHERE FREETEXT ([Content], 'Test')

另外

代码语言:javascript
复制
    SELECT
    Id,
    CONVERT(VARCHAR(MAX), [Content]) AS [Content]
FROM dbo.FreeTextSearch

会回来

代码语言:javascript
复制
ID: 1 Content <
ID: 2 Content <

代码语言:javascript
复制
    SELECT
    Id,
    CONVERT(XML, [Content]) AS [Content]
FROM dbo.FreeTextSearch

会回来

代码语言:javascript
复制
ID: 1 Content: <p>Test note for free text bla!</p>
ID: 2 Content: <p>Something is very wrong with this one i think</p><p>Not really sure what.</p>

这是正确的数据,但不清楚为什么

  1. FREETEXT没有找到任何
  2. 为什么VARCHAR(MAX)只返回<
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-09 14:05:52

代码语言:javascript
复制
select test, cast(test as varchar(max)), cast(test as nvarchar(max))
from
(
select cast('a' as varbinary(max)) + 0x0 /* nul in ascii, anything after that not printed*/ + cast('123' as varbinary(max)) as test
) as src;


select test, cast(test as varchar(max)), cast(test as nvarchar(max))
from
(
select cast(N'<p>Test note for free text bla!</p>' as varbinary(max)) as test
) as src;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60601159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档