2008-11-25 9 views
8

मैं एसक्यूएल एडवांटेज का उपयोग कर रहा हूं और यह जानने की जरूरत है कि एसक्यूएल तालिका से जुड़े ट्रिगर्स की पहचान कैसे कर रहा है। मेरे पास किसी अन्य टूल का उपयोग करने का विकल्प नहीं है, इसलिए पुराना पुराना एसक्यूएल समाधान आदर्श उत्तर है।आप एक sybase डेटाबेस में किसी तालिका से जुड़े ट्रिगर्स की पहचान कैसे करते हैं?

उत्तर

9

मैं भी पता चला कि

sp_depends <object_name> 

आप, एक मेज के बारे में जानकारी का एक बहुत कुछ दिखा देंगे इसके साथ जुड़े सभी ट्रिगर भी शामिल है। इसका उपयोग करके, रे की क्वेरी के साथ ट्रिगर्स को ढूंढना बहुत आसान हो सकता है। रे के लिंक किए गए लेख से इस क्वेरी के साथ संयुक्त:

sp_helptext <trigger_name> 

और आप ट्रिगर की परिभाषा देख सकते हैं:

sp_depends <trigger_name> 

भी आप एक ट्रिगर

10
select * 
from sysobjects 
where type = 'TR'

here से लिया गया।

+0

धन्यवाद रे, मैं कल समय के साथ के लिए खोज की, लेकिन उस लेख कभी नहीं मिली। इसमें वहां उपयोगी जानकारी का इनाम है। –

+0

मैंने अभी आपके उत्तर स्पष्टीकरण को जोड़ा होगा लेकिन मैं एक जवाब संपादित नहीं कर सकता। मुझे लगता है क्योंकि जब मैंने सवाल बनाया था तो मेरे पास समुदाय विकी की जांच नहीं हुई थी। –

1

मैं विश्वास से संबंधित सभी तालिकाओं दिखाएगा (या कम से कम 'था') कुछ मुद्दा है जहां निर्भरता की जानकारी हमेशा सटीक नहीं होती है। इसलिए मैं इसे इस तरह से संपर्क करने का प्रयास करूंगा:

select name 
from sysobjects 
where xtype='TR' 
and id in (select id from syscomments where text like '%MY-TABLE-NAME%') 

शुभकामनाएं।

पीएस- यह अनचाहे कोड है, अगर यह काम नहीं करता है तो एक टिप्पणी छोड़ दो, और मैं इसे ठीक कर दूंगा।

5

चलाता दिखाने के लिए और एक मेज के लिए एसक्यूएल बनाने के लिए:

select so.name, text 
from sysobjects so, syscomments sc 
where type = 'TR' 
and so.id = sc.id 
and text like '%TABLENAME%' 
3
SELECT 
    T.name AS TableName 
    ,O.name TriggerName 
    FROM sysobjects O 
    INNER JOIN sys.tables T ON T.object_id = O.parent_obj 
    WHERE O.type = 'TR' AND T.name IN ('tableNames') 
ORDER BY TableName 
0
  1. ओपन Sybase मध्य और करने के लिए चलाता देखने जाएँ।
  2. सॉर्ट करने के लिए "ऑब्जेक्ट नेम" कॉलम पर क्लिक करें।

"ऑब्जेक्ट नेम" कॉलम स्पष्ट रूप से ट्रिगर से जुड़े तालिका को दिखाता है। उस तालिका में नीचे स्क्रॉल करें जिसमें आप रुचि रखते हैं।

0

मैं यह सुनिश्चित करने के लिए निम्नलिखित कोड का उपयोग करूंगा कि आपको सही ऑब्जेक्ट मिल रहे हैं। चूंकि Sybase 16 यह अब पूरा नहीं होगा, क्योंकि एक ही प्रकार के एक ही प्रकार के अधिक ट्रिगर्स हो सकते हैं।

select tr.id, tr.name, tr.type, tr.crdate, tr.loginame 
from sysobjects u 
    join sysobjects tr on tr.id in (u.instrig, u.deltrig, u.updtrig, u.seltrig) 
where u.name = 'TABLENAME' 
संबंधित मुद्दे

 संबंधित मुद्दे