Tsql 谓词包含不';t使用NOLOCK返回记录

Tsql 谓词包含不';t使用NOLOCK返回记录,tsql,full-text-search,contains,nolock,read-uncommitted,Tsql,Full Text Search,Contains,Nolock,Read Uncommitted,我正在编写集成测试,为此我使用TransactionScope(TransactionScopeAsyncFlowOption.Enabled)。 我将一些数据添加到DB(MS SQL Server)中,然后检查结果,比较结果等。 测试通过后,新数据将不会保存在DB中。 所以这种方法总是很有效。当我调试测试时,我可以检查数据库中的新记录。g SELECT * FROM Users WITH(NOLOCK) Where UserId = 2 但是现在我需要在调试测试时检查CONTAI

我正在编写集成测试,为此我使用TransactionScope(TransactionScopeAsyncFlowOption.Enabled)。 我将一些数据添加到DB(MS SQL Server)中,然后检查结果,比较结果等。 测试通过后,新数据将不会保存在DB中。 所以这种方法总是很有效。当我调试测试时,我可以检查数据库中的新记录。g

  SELECT * FROM Users
  WITH(NOLOCK)
  Where UserId = 2
但是现在我需要在调试测试时检查CONTAINS谓词,例如。g

SELECT * FROM Users
WITH(NOLOCK)
WHERE CONTAINS(Surname, 'White')
这个查询只返回数据库中的当前记录,但不返回我在测试中添加的未提交记录。 “姓氏”字段当然接受全文搜索。 我已经阅读了有关谓词包含的信息,但没有找到答案。
谓词是否可以包含未提交记录的工作?如果是,怎么做?

如果将隔离级别改为
READ UNCOMMITTED
,是否会得到相同的行为?我怀疑这与全文目录由单独的进程维护有关,而不是由数据库引擎维护有关。您未提交的数据可能没有被交给索引过程。建议阅读:。@Larnu是的,同样的行为。LIKE谓词处理未提交的记录时没有任何问题。包含谓词不起作用。我现在不知道CONTAINS是否有可能处理未提交的记录。