2014-11-05 59 views
0

我們有一個遷移工具,它貫穿所有未在客戶數據庫上運行的所有腳本,這些腳本都在事務中運行。由於全文索引,我們遇到了問題,因爲我們無法修改全文索引或創建它們的任何對象,因爲我們無法修改事務中的全文索引。帶全文索引的SQL Server遷移

我們實現了一個前置和後置的部署腳本刪除並重新創建全文索引,但我們現在有問題的是,我們不能修改其提及包含或FREETEXT,因爲它的錯誤與任何程序:

Cannot use a CONTAINS or FREETEXT predicate on table or indexed view 'xx' 
because it is not full-text indexed. 

我們在這裏真的沒有什麼想法了,所以我希望其他人可能會遇到一個解決方案,因爲我認爲有很多人用這種風格的全文索引數據庫運行遷移。我目前唯一的解決方案是在沒有事務的情況下運行遷移,這非常危險,因爲遷移失敗會使我們的數據庫處於部分遷移狀態。

我們的另一個選擇是將全文索引放在一起,看看Lucene.net這樣的東西,但是對於爲正確的用戶返回正確的數據給我們提出了其他問題。

回答

0

DDL transactional statements在大多數關係數據庫中不是標準的。

Source

我建議你使用了事務的DML操作。正如你發現的那樣,SQL Server爲事務中的DDL語句提供有限的支持。

DML (Data Manipulation Language)

實例:SELECT,UPDATE,INSERT語句

DDL (Data Definition Language)

實例:CREATE,ALTER DROP語句