我有一个简单的View
:
让我们选择前5行:(视图没有top 5
- 这只是为了清晰起见)
SELECT TOP 5 [CustomerId]
,[EngLastFirst]
,[EngFirstLast]
,[LocalLastFirst]
,[LocalFirstLast]
FROM [WebERP].[dbo].[View_CustomersNames]
结果:
让我们创建一个全文索引(右键单击view
):
行。所以现在我们还有一个catalog
:
右键点击catalog
- 查看属性:
所有属性都是default
:
让我们点击rebuild
上的catalog
:
大
让我们运行一个简单的CONTAINS
查询:
SELECT * FROM View_CustomersNames vcn
where CONTAINS( vcn.*, '"aerSwy*"')
从前面的代码中可以看出 - 记录确实存在:
但会返回否结果
虽然like
确实会返回结果:
SELECT * FROM View_CustomersNames vcn
where vcn.engLAstFirst LIKE '%aerSwy%'
问题:
为什么我没有收到此查询的结果?
SELECT * FROM View_CustomersNames vcn
where CONTAINS( vcn.*, '"aerSwy*"')
注意 - 我可能会遗漏非常基本的东西(全文检索的新内容)
修改
在生产环境中 - 它确实有效。在我的本地环境中 - 它没有
答案 0 :(得分:3)
发现问题 - 这是权限
这里:
现在CONTAINS
有效:
答案 1 :(得分:-1)
您应该从视图中删除TOP 5。我不相信这会在SQL中起作用。订购你的结果,但你需要喜欢Keith说。这是一些基本SQL示例的链接。 http://www.w3schools.com/sql/sql_quickref.asp在重构语句时尝试使用其中一些作为参考。这些应该有助于指导您操纵您的SQL以执行您需要的操作。此外,在您在SQL语句中引用表名后,我认为您不需要输入数据库的名称。