0

如何通过其 Database.Owner.Name 完整目录名称更改全文目录?

declare @db_name sysname;
declare db cursor for 
select name from sys.Databases where name like 'myprefix%'
open db
fetch next from db into @db_name
while @@fetch_status = 0
begin
  set @sql = 'ALTER FULLTEXT CATALOG [' +  @db_name + '].dbo.IndexedContent REBUILD'
  exec sp_executesql @sql   
  fetch next from db into @db_name
end
close db;
deallocate db;

但 SQL Server 抱怨

Incorrect syntax near '.'

http://msdn.microsoft.com/en-us/library/ms176095.aspx上的文档没有明确指定catalog_name 是否可以完全限定。

4

1 回答 1

1

文档说目录名称是单个元素,即没有模式或数据库前缀(例如,与 CREATE TABLE 的语法不同。因此,您可能需要先将执行上下文切换到正确的数据库:

set @sql = 'USE ' +  QUOTENAME(@db_name) + '; ALTER FULLTEXT CATALOG IndexedContent REBUILD;'
于 2012-05-08T10:47:58.703 回答