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 に答える