1

DBO と Switch という名前のデータベースに 2 つのスキーマがあります。DBO での DDL の変更をテーブルに記録するこの DDL トリガーを作成しました。次に、DDL の影響を受けるオブジェクトがパーティション化されているかどうかを確認し、パーティション化されている場合は、他のスキーマ スイッチで同じ DDL を実行します。このアプローチは、ユーザーが DDl ステートメントでスキーマ名を指定しない限り、正常に機能します。

発行された DDl にスキーマ名が存在するかどうかを確認し、存在しない場合は SWitch スキーマでデフォルトで DDL を発行する方法を探しています。どうすればこれを達成できるかについてのアイデアはありますか? 私は TSQL コーディングが初めてで、これを手伝ってくれる人に感謝します。

4

1 に答える 1

0

DDL トリガーで使用できるのはEVENTDATA、次のフィールド (特に) です。

<EVENT_INSTANCE>
  <DatabaseName>RT-BOOKS</DatabaseName>
  <SchemaName>dbo</SchemaName>
  <ObjectName>Books_PL$ID</ObjectName>
  <TSQLCommand>
    <CommandText>
    </CommandText>
  </TSQLCommand>
</EVENT_INSTANCE>

では不十分な場合<SchemaName>(正しく理解されている場合、ユーザーがクエリでスキーマ名を明示的に使用したかどうかを確認する必要があります)、 and を使用して解析を<CommandText>試みます。<SchemaName><ObjectName>

于 2013-12-02T16:48:17.190 に答える