2013-07-16 55 views
1

我在名爲DBO和Switch的數據庫上有兩個架構。我創建了此DDL觸發器,它將DBO上的DDL更改記錄到一個表中。然後檢查DDL影響的對象是否被分區,如果是,我在另一個架構Switch上運行相同的DDL。這種方法工作正常,除非用戶不在DDl語句中指定模式名稱。在不同的架構上捕獲並運行DDL

我正在尋找一種方法來檢查發出的DDl是否存在架構名稱,如果不存在,那麼在SWitch架構上默認發出DDL。 關於如何實現這一點的任何想法?我是TSQL編碼新手,希望有人能幫助我解決這個問題。

回答

0

EVENTDATA提供DDL觸發器使用,有以下字段(其中包括)可得:

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

如果<SchemaName>是不夠的,你(如果正確理解,你要檢查,如果用戶明確使用模式名稱),然後嘗試使用<SchemaName><ObjectName>解析<CommandText>

相關問題