SQL ServerのSyncoBJとは何ですか
-
04-10-2019 - |
質問
このスクリプトを実行して特定のテキストを検索するとき sys.columns
そして、私はたくさん得ます "dbo.syncobj_0x3934443438443332"
行のように。
SELECT c.name, s.name + '.' + o.name
FROM sys.columns c
INNER JOIN sys.objects o ON c.object_id=o.object_id
INNER JOIN sys.schemas s ON o.schema_id=s.schema_id
WHERE c.name LIKE '%text%'
私がそれを正しく理解すれば、それらは複製オブジェクトです。そうですか?同じようにクエリからそれらを捨てることができますか o.name NOT LIKE '%syncobj%'
または別の方法がありますか?
ありがとうございました。
解決
解決策を見つけました。それが最高のものであるかどうかはわかりません。
SELECT c.name, s.name + '.' + o.name
FROM sys.columns c
INNER JOIN sys.objects o ON c.object_id=o.object_id
INNER JOIN sys.schemas s ON o.schema_id=s.schema_id
WHERE c.name LIKE '%text%' AND o.type = 'U'
結果は今問題ありません。私が言ったように、Syncobjは複製オブジェクトであり、それらは私たちにとって意味を持っていません。それらは複製目的でのみ使用されます。
http://www.developmentnow.com/g/114_2007_12_0_0_443938/syncobj-views.htm
編集:
syncobjがビューとしてdbに保存されることを忘れてしまうので、ビューのリストが必要な場合は、おそらく私の質問で行ったようにそれらを無視する必要があります。
Syncobjと私の見解の違いをチェックしている間、唯一の違いは IS_MS_SHIPT 桁。 Syncobjの場合、1つ、他の0の場合は1です。これは、Syncobjビューがシステムによって作成されることを意味します。
PS私はしばらく待ちます、そして、誰も別の答えを与えないなら、私は私のものを受け入れます。
他のヒント
元のテーブルからすべてのフィールドやその他のメタデータが変更されないレプリケーションを作成するとき。出版物から生成スクリプトを作成すると、作成方法が表示されます(以下を参照)。このビューは、最初のスナップショット中にBCP抽出物を生成するオブジェクトを提供します。
これが例です
-Synchronization Objece exec sp_articleview @publication = n'publication_data '、 @article = n'tablename'、@view_name = n'syncobj_0x4239373642443436 '、@filter_clause = n'、@force_invalidate_napsubsibsibsubsubsubsubsubsibsubsibsibsubsibsubsibsubsibsubsibsubsibsubsubsubsubsubsubsibshot =
PS私は最近、複製をドロップしたときに問題を抱えていましたが、これらをドロップできなかったため、システムビューを手動でドロップして複製スクリプトを再利用する必要があります。エラーメッセージを提供します
MSG 2714、レベル16、状態3:データベースに「syncobj_0x3437324238353830」という名前のオブジェクトがすでにあります。
スナップショット中にBCPが失敗しました。